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.
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.
In addition to specifying the number of seconds,
Timeout()
supports a constant that allows for infinite waiting.Answer is very simple: attribute value should be a constant, not an expression.
Change
to
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