Я понял это. Я должен был использовать request.cookie
в python для получения cookie, так как я использую Flask.
Вы могли бы хотеть попытаться использовать Монитор и войти в TestInitialize и выйти на TestCleanup. Если Ваши тестовые классы, все зависят от внешнего файла, необходимо будет использовать единственный объект блокирования для всех них.
public static class LockClass
{
public static object LockObject = new object();
}
...
[TestInitialize]
public void TestSetup()
{
Monitor.Enter(LockClass.LockObject);
}
[TestCleanup]
public void TestCleanup()
{
Monitor.Exit(LockClass.LockObject);
}
Это должно вынудить все Ваши тесты работать последовательно и пока вся Ваша тестовая передача/сбой, которую они должны выполнить. Если какой-либо из них бросит непредвиденную исключительную ситуацию, тем не менее, все, что остальные подвесят, то так как Код выхода не будет выполнен для теста, который аварийно завершается.
У меня была попытка использовать блокировки таким образом.Однако я испытал то, что VS2010 не по умолчанию выполняет тесты параллельно, а выполняет их последовательно, в одном потоке. (Однако можно было бы включить параллельное выполнение. Но это не предотвратило бы проблему полностью)
Что меня очень беспокоит, так это то, что последовательное выполнение будет происходить в произвольном порядке, даже между тестовыми классами!
Так, например, порядок выполнения может выглядеть следующим образом:
Я не понимаю, почему М.С. так поступает. Другие фреймворки UnitTest (например, JUnit) выполняют методы тестирования по классам. В противном случае будет некоторое чередование методов SetUp / TearDown, что вызовет описанный хаос ...
Есть ли кто-нибудь, кто знает, как предотвратить скачки MSTest между тестовыми классами? (В настоящее время я использую средство запуска тестов Resharpers, которое ведет себя должным образом, выполняя все методы тестирования одного класса перед переходом к следующему классу)