Я один тест, который должен работать более 1 минуты (VS2008, MSTest, тесты запускаются с VisualStudio):MSTest: как увеличить время тестирования
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);
}
Этот тест закончен в «Run» режим с «Test» Login_ExpirationFail_Test »превысил период ожидания выполнения». сообщение об ошибке, в «Debug» - он работает нормально.
Я видел несколько похожих проблем, связанных с запуском тестов из командной строки.
Как я могу проверить свою работоспособность в режиме «Выполнить»?
Спасибо.
Ваша математика ошибочна. Вы отбросили его в 10 раз. Кроме того, выражение против константы выше в точности эквивалентно, потому что компилятор C# превратит его в одно и то же (за исключением математической ошибки). Если это решение сработало, я подозреваю, что это связано с тем, что математическая ошибка привела значение к чему-то в пределах диапазона, который требует mestest. –
Эй, Эндрю, спасибо, что привлек это к нашему вниманию. Это был просто опечатка в ответе. Я использовал правильную математику в своем исходном коде. Я не знаю, почему это помогло, но это так. – Budda
@Budda Как это ответ? Почему, * это должен быть постоянный *, ответ? Постоянное выражение просто так, постоянное, и, как заметил Андрей, это то, что делает компилятор. Единственное, что вам удается сделать, превратив это в константу самостоятельно, - это много нулей, которые могут быть легко искажены, поскольку я думаю, что этот ответ сам может подтвердить, выражение прекрасно и гораздо читаемо. –