2016-10-24 9 views
3

Я написал тесты автоматизации в Specflow 2.0, nUnit 3.X, TeamCity и Visual Studio 2013. Я пытаюсь запустить тесты параллельно, но они не работают, потому что код использует статические классы/объект.Specflow, как реализовать изоляцию AppDomain с Nunit 3

На сайте Specflow рекомендации является для запуска Потокобезопасной испытании (если архитектура зависит от статического состояния) с использованием PARALLEL ИСПОЛНЕНИЯ С ПАМЯТЬЮ (AppDomain) ИЗОЛЯЦИЯ http://www.specflow.org/documentation/Parallel-Execution/

Но нет никакой информации о том, как сделайте это и даже googling, я не смог найти подходящую статью.

Я действительно признателен, если кто-нибудь может помочь мне понять, как мы это делаем.

Спасибо за вашу помощь, Satty

ответ

0

Как настроить изоляции зависит от испытательного бегуна, который вы используете.
Я не 100% уверен, что NUnit поддерживает AppDomain изоляции, но хороший старт, чтобы выяснить, была бы параллелизуемый атрибут документация: https://github.com/nunit/docs/wiki/Parallelizable-Attribute

AppDomain или разделение процесса возможно, если вы используете SpecFlow + Runner (http://www.specflow.org/plus/).
Вот Блогпост различных режимов в SpecFlow + Runner: https://the-engineers.net/2016/04/08/using-specflowrunners-parallelization-features/


Полное раскрытие: Я один из разработчиков SpecFlow + Runner

+0

Спасибо Andreas, я могу запустить несколько потоков но проблема в том, что тесты не являются потокобезопасными, чего я пытаюсь достичь. К сожалению, specflow + оплачивается, и я попытаюсь сделать эту работу без нее, если смогу в первую очередь. – SoMuchtoLearn

+0

Как разработчик NUnit, я могу сказать вам, что параллельное выполнение NUnit не поддерживает изоляцию AppDomain для параллельных тестов, только для самого тестового запуска. Это хорошая идея для функции, но так как .NET Core не будет поддерживать создание доменов приложений в ближайшее время, это будет ниже наших приоритетов. –