Я добавил Specflow/Specrun в существующий проект тестирования модулей (на основе XUnit 2.0) в Visual Studio 2015.Почему Specflow пытается выполнить один и тот же сценарий несколько раз?
Когда я пытаюсь выполнить один сценарий, кажется, он пытается выполнить одно и то же 4 раза. Вот вывод на консоль:
Scenario: Add true/false question in AddTrueFalseQuestion -> Succeeded on thread #0
Scenario: Add true/false question in AddTrueFalseQuestion -> Failed on thread #0
[ERROR] Trace listener failed. -> The ScenarioContext.Current static accessor cannot be used in multi-threaded execution. Try injecting the scenario context to the binding class. See http://go.specflow.org/doc-multithreaded for details.
Scenario: Add true/false question in AddTrueFalseQuestion -> Failed on thread #0
[ERROR] Trace listener failed. -> The ScenarioContext.Current static accessor cannot be used in multi-threaded execution. Try injecting the scenario context to the binding class. See http://go.specflow.org/doc-multithreaded for details.
Scenario: Add true/false question in AddTrueFalseQuestion -> Failed on thread #0
[ERROR] Trace listener failed. -> The ScenarioContext.Current static accessor cannot be used in multi-threaded execution. Try injecting the scenario context to the binding class. See http://go.specflow.org/doc-multithreaded for details.
Result: 1 failed
Total: 2 (test executions: 4)
Succeeded: 1
Ignored: 0
Pending: 0
Skipped: 0
Failed: 1
Что я пробовал:
Я искал, чтобы проверить, если какой-либо файл в проекте есть ссылка на
ScenarioContext.Current
, в соответствии с указанной выше ошибки но ничего не нашлиПрофиль тестирования default.sprofile specflow имеет следующую конфигурацию, но не уверен, что он соблюдается:
< Execution stopAfterFailures="3" testThreadCount="1" testSchedulingMode="Sequential" />
Я даже попытался добавить следующее App.config в случае, если что-то в XUnit вмешивался, но безрезультатно:
<add key="xunit.maxParallelThreads" value="1"/>
<add key="xunit.parallelizeTestCollections" value="false"/>
Я не уверен, почему тест будет выполняться 4 раза, когда он уже преуспел один раз. В чем может быть проблема и как ее решить? Обратите внимание, что это происходит только для тестов, вызывающих браузер. Для других это, кажется, работает отлично.
PS: Это происходит только после добавления Specflow/Specrun в существующий проект тестирования модулей. Я создал несколько проектов со стороны в отдельных решениях, в которых установлен specflow, и они отлично работали.
Я установил 'retryFor =" None "'. Однако тест на самом деле не сработает. Он всегда преуспевает, и он по-прежнему пытается повторить попытку, а затем по какой-то причине он не справляется с этими исключениями прослушивателя трассировки. Для файлов * .feature.cs я просто удалил их и снова их автогенерировал. – PhD