MSTest: как увеличить время тестирования
У меня есть один тест, который должен работать более 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 превысил период ожидания выполнения ". сообщение об ошибке, в" Debug" - он отлично работает.
Я видел несколько похожих проблем, связанных с запуском тестов из командной строки.
Как я могу проверить свою работоспособность в режиме "Выполнить"?
Спасибо.
Ответы
Ответ 1
Ответ очень прост: значение атрибута должно быть константой, а не выражением.
Изменить
[Timeout(10*60*1000)]
to
[Timeout(600000)]
разрешена проблема.
РЕДАКТИРОВАТЬ: Комментарий к ответу доведено до моего сведения ошибку, которую я сделал первоначально в ответ (написал "60000" как значение тайм-аута). В моем исходном коде у меня 6000000, и это значение помогло. ответ был исправлен в последнее время
Ответ 2
В дополнение к указанию количества секунд, Timeout()
поддерживает константу, которая допускает бесконечное ожидание.
[Timeout(TestTimeout.Infinite)]
Ответ 3
Не конкретные шаги, но следует указать вам в правильном направлении:
Добавьте тестовый файл настроек в решение, если у вас его еще нет.
Откройте мастер настройки с настройками теста и найдите параметр, который контролирует время ожидания теста.