t.me/atinfo_chat Telegram группа по автоматизации тестирования

Specflow 2.4.0 не работает с Nunit, тесты не отображаются

csharp
specflow
nunit
webdriver
Теги: #<Tag:0x00007f21d58b5cd8> #<Tag:0x00007f21d58b5b98> #<Tag:0x00007f21d58b5a58> #<Tag:0x00007f21d58b5918>

(Максим Лаптев) #1
NUnit version="3.9.0"
NUnit3TestAdapter version="3.9.0"
SpecFlow version="2.4.1"
SpecFlow.NUnit version="2.4.1"

Версии Nunit менял с 3.0 до 3.12

Проблема в том, что после билда проекта, не подтягиваются тесты Specflow в дереве тестов в студии.
Если установить Specflow на версию 3.0. тесты подтягиваются.

Возможно проблема в версиях пакетов, как можно решить проблему?


(Максим Лаптев) #2

SpecFlow.Tools.MsBuild.Generation version=“2.4.1” еще забыл написать, в версии Specflow 3.0 все работает


(Valentin G ) #3

У тебя используется .NET or .NET Core? Если второе, то вероятно плохая совместимость с вторым SpecFlow.
Еще одно, для первого в Студии должен быть установлен NUnit Test Adapter 3 (extensions), для третьего его не надо устанавливать.


(Максим Лаптев) #4

.NET
NUnit Test Adapter 3 (extensions) установил, результат аналогичный


(Alexandr D.) #5

Что в апп.конфиг?


(Максим Лаптев) #6
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" />
     </configSections>
  <specFlow>
    <language feature="en-US" />
    <unitTestProvider name="NUnit" />
  </specFlow>
  <appSettings>
    <add key="HowBrowserUse" value="Chrome" />
	..................
  </appSettings>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

      <dependentAssembly>
        <assemblyIdentity name="nunit.framework" publicKeyToken="2638cd05610744eb" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.12.0.0" newVersion="3.12.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  
  
</configuration>

(Vladislav Abramov) #7

может в языке дело?
в апп конфиге англичанский


(Максим Лаптев) #8

не, все feature на английском, да и в SpecFlow 3 все ок с этим


(Максим Лаптев) #9

Есть какие-нибудь идеи? не знаю куда еще капнуть


(Valentin G ) #10

Он включен? На всякий случай спрашиваю. И приложение должно быть типа Class library.


(Максим Лаптев) #11

ага, включен


(Максим Лаптев) #12

Походу дела разобрался в чем дело. У файлов .feature в дереве Solution Explorer не отображается файл .feature.cs, хотя в папке с проектом он есть. Когда удаляю этот файл из папки, при билде проекта в дереве его нет, но в папке он появляется.
Если создать новый файл .feature и сгенерить для него шаги, то он появляется везде и все работает.
Тут только 2 момента, в ручную перелопачивать весь проект или же есть какой-то способ проще ?


(Максим Лаптев) #13

Рано обрадовался, но тем не менее успех
Тесты отображаются, но не запускаются

NUnit Adapter 3.13.0.0: Test execution complete
 нет доступных тестов. Убедитесь, что средства обнаружения и выполнения зарегистрированы

(Максим Лаптев) #14

Вроде как помогло вот такое

  1. В меню Visual Studio перейдите в Test > Test Settings > Default Processor Architecture и сделайте заметку, если выбран X86 или X64
  2. Теперь перейдите в раздел " Build " в окне " Properties проекта, где написаны тесты. Убедитесь, что раскрывающийся список Platform target выбран либо Any CPU либо, по крайней мере, соответствует архитектуре из вышеописанного step 1 .

Теперь, если вы создадите решение и попробуйте запустить эти тесты, вы должны увидеть, что они теперь запущены.


(Valentin G ) #15

Вспомнил еще, рекомендуется выключить данную опцию в настройках, если используешь MSBuilld. В документации кстати это не указано:
vsstudio_options_specflow