Исключение BoDi.ObjectContainerException: интерфейс не может быть разрешен: TechTalk.SpecFlow.UnitTestProvider.IUnitTestRuntimeProvider(‘nunit’)

#mstest #specflow #vstest

#mstest #specflow #vstest

Вопрос:

У меня есть тестовый проект в VS 2019 со Specflow. Я обновился до Specflow 3.4.3. Я хочу использовать MSTest в качестве поставщика тестов, поэтому я установил Specflow.Пакет MSTest nuget. Сборка проекта работает, но когда я пытаюсь выполнить один из тестов в проекте с помощью vstestconsole через командную строку с помощью built .dll на одной из моих тестовых машин я получаю следующую ошибку:

 MSTestAssemblyHooks.AssemblyInitialize threw exception. BoDi.ObjectContainerException: BoDi.ObjectContainerException: Interface cannot be resolved: TechTalk.SpecFlow.UnitTestProvider.IUnitTestRuntimeProvider('nunit'). Aborting test execution.
  Stack Trace:
      at BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
   at BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
   at BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
   at BoDi.ObjectContainer.Resolve[T](String name)
   at TechTalk.SpecFlow.Infrastructure.ContainerBuilder.CreateGlobalContainer(Assembly testAssembly, IRuntimeConfigurationProvider configurationProvider)
   at TechTalk.SpecFlow.TestRunnerManager.CreateTestRunnerManager(Assembly testAssembly, IContainerBuilder containerBuilder)
   at TechTalk.SpecFlow.TestRunnerManager.GetTestRunnerManager(Assembly testAssembly, IContainerBuilder containerBuilder, Boolean createIfMissing)
   at TechTalk.SpecFlow.TestRunnerManager.OnTestRunStart(Assembly testAssembly, IContainerBuilder containerBuilder)
  

Кто-нибудь знает, как решить эту проблему?

Комментарии:

1. Вы удаляете файлы где-нибудь из выходного каталога? Должен быть TechTalk.SpecFlow. MsTest.SpecFlowPlugin.dll в той же папке, что и ваша тестовая сборка.

2. Да, он находится в той же папке

3. Странно. Пожалуйста, откройте проблему на github.com/SpecFlowOSS/SpecFlow . Меня особенно интересует ваша команда командной строки для запуска тестов. Кстати, работает ли он в Visual Studio?

4. Я не могу протестировать его в Visual Studio, так как в системе, где установлен VS, тестируемое программное обеспечение там не установлено. Моя команда командной строки: vstest.console.exe MyTestDll.dll /TestCaseFilter:»Name=имя_теста»

5. Создана проблема на github: github.com/SpecFlowOSS/SpecFlow/issues/2120