MSTest: how to increase test time

心已入冬 提交于 2019-12-13 12:24:12

问题


I have one test that needs to work more then 1 minute (VS2008, MSTest, tests are launched from the VisualStudio):

    const int TestTimeout = 1;

    [TestMethod]
    [Timeout(10*60*1000)] // 10 minutes
    public void Login_ExpirationFail_Test()
    {
        IAuthenticationParameters parameters = new AuthenticationParameters(...);
        LdapAuthentication auth1 = new LdapAuthentication();
        IAuthenticationLoginResult res = auth1.Login(parameters);

        Assert.IsNotNull(res);
        Assert.IsFalse(string.IsNullOrEmpty(res.SessionId));

        const int AdditionalMilisecodns = 400;
        System.Threading.Thread.Sleep((TestTimeout * 1000 + AdditionalMilisecodns) * 60);

        LdapAuthentication auth2 = new LdapAuthentication();
        auth2.CheckTicket(res.SessionId);
    }

This test is finished in "Run" mode with "Test 'Login_ExpirationFail_Test' exceeded execution timeout period." error message, in "Debug" - it works fine.

I saw few similar problems linked to launching tests from the command line.

How could I get my test workable in "Run" mode?

Thanks.


回答1:


Answer is very simple: attribute value should be a constant, not an expression.

Change

[Timeout(10*60*1000)]

to

[Timeout(600000)]

resolved an issue.

EDIT: Comment to the answer brought to my attention a mistake I've done originally in the answer (wrote "60000" as timeout value). In my source code I have 6000000 and that value helped. the answer was corrected recently




回答2:


In addition to specifying the number of seconds, Timeout() supports a constant that allows for infinite waiting.

[Timeout(TestTimeout.Infinite)]



回答3:


Not specific steps, but should point you in the right direction:

Add a test settings file to the solution if you don't already have one.

Open the configuration wizard with the test settings, and look for the setting that controls the test timeout.



来源:https://stackoverflow.com/questions/4109781/mstest-how-to-increase-test-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!