【发布时间】:2011-05-05 19:38:11
【问题描述】:
我有一个测试需要运行超过 1 分钟(VS2008,MSTest,测试是从 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);
}
此测试在“运行”模式下完成,“测试 'Login_ExpirationFail_Test' 已超出执行超时期限。”错误消息,在“调试”中 - 它工作正常。
我发现很少有与从命令行启动测试相关的类似问题。
如何让我的测试在“运行”模式下可用?
谢谢。
【问题讨论】:
标签: unit-testing tdd timeout mstest .net-3.5