Я хотел бы использовать SpecRunner вместе с библиотекой Baseclass.Contrib.SpecFlow.Selenium.NUnit. Когда я добавил SpecRunner для SpecFlow 2 из раздела «Управление пакетами Nuget», поставщиком модульных тестов был «SpecRun» в app.config. Затем, когда он был добавлен в Baseclass.Contrib.SpecFlow.Selenium.NUnit в решение с использованием Manage Nuget Package, он также добавил поставщика модульных тестов SeleniumNUnit. Когда я создал свои файлы функций и определения шагов и попытался запустить тесты с каждой функцией, аннотированной тегом браузера, например @Browser: Chrome, и использовать синтаксис Browser.Current в качестве веб-драйвера в моих методах привязки, это дало мне ошибка. Во-первых, ошибка заключалась в том, что у меня было два поставщика модульных тестов в app.config, а в app.config может быть только один поставщик модульных тестов. Итак, я закомментировал первого поставщика модульных тестов и получил еще один набор ошибок:
* Ошибка 2 #error: «Ошибка генерации: не удалось загрузить файл или сборку» TechTalk.SpecFlow, Version = 1.9.0.77, Culture = нейтральный, PublicKeyToken = 0778194805d6db41 или одна из его зависимостей. Система не может найти указанный файл.' C: \ Users \ amaddox \ documents \ Visual Studio 2013 \ Projects \ SpecFlow \ SpecFlow \ SpecFlowFeature1.feature.cs 1 8 SpecFlow *
* Ошибка 33 Ошибка пользовательского инструмента: ошибка генерации: не удалось загрузить файл или сборку TechTalk.SpecFlow, Version = 1.9.0.77, Culture = нейтральный, PublicKeyToken = 0778194805d6db41 или одну из их зависимостей. Система не может найти указанный файл. C: \ Users \ amaddox \ documents \ Visual Studio 2013 \ Projects \ SpecFlow \ SpecFlow \ SpecFlowFeature1.feature 2 2 SpecFlow *
Итак, я попытался раскомментировать первый и прокомментировать второго провайдера модульных тестов. Та же проблема. Как я могу запустить SpecRun в Visual Studio 2015 вместе с гибкостью параметризованных функциональных возможностей кроссбраузерных тестов, которые может предложить Baseclass.Contrib.SpecFlow.Selenium.NUnit.Bindings? Похоже, он хочет, чтобы я вернулся к предыдущей версии Specflow (1.9), и я использую Specflow 2. Не знаю, как это сделать. Как мне решить эту проблему?
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" />
<section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration" /></configSections>
<specFlow>
<!-- For additional details on SpecFlow configuration options see http://go.specflow.org/doc-config -->
<!-- For additional details on SpecFlow configuration options see http://go.specflow.org/doc-config --><!-- use unit test provider SpecRun+NUnit or SpecRun+MsTest for being able to execute the tests with SpecRun and another provider --><unitTestProvider name="SpecRun" /><plugins>
<add name="SpecRun" />
<add name="Baseclass.Contrib.SpecFlow.Selenium.NUnit" path="..\packages\Baseclass.Contrib.SpecFlow.Selenium.NUnit.1.3.1\tools" /></plugins><unitTestProvider name="SeleniumNUnit" /><stepAssemblies>
<stepAssembly assembly="Baseclass.Contrib.SpecFlow.Selenium.NUnit.Bindings" />
</stepAssemblies></specFlow>
<appSettings>
<add key="seleniumBaseUrl" value="http://localhost:58909" />
</appSettings><autofac>
<components>
<component name="IE" type="OpenQA.Selenium.IE.InternetExplorerDriver, WebDriver" service="OpenQA.Selenium.IWebDriver, WebDriver" instance-scope="per-dependency">
</component>
<component name="Chrome" type="OpenQA.Selenium.Chrome.ChromeDriver, WebDriver" service="OpenQA.Selenium.IWebDriver, WebDriver" instance-scope="per-dependency">
</component>
<component name="Firefox" type="OpenQA.Selenium.Firefox.FirefoxDriver, WebDriver" service="OpenQA.Selenium.IWebDriver, WebDriver" instance-scope="per-dependency">
</component>
<!-- Example of using an injected RemoteDriver:
<component
name="IE"
type="Baseclass.Contrib.SpecFlow.Selenium.NUnit.RemoteWebDriver, Baseclass.Contrib.SpecFlow.Selenium.NUnit.SpecFlowPlugin"
service="OpenQA.Selenium.IWebDriver, WebDriver"
instance-scope="per-dependency">
<parameters>
<parameter name="url" value="http://127.0.0.1:4444/wd/hub" />
<parameter name="browser" value="InternetExplorer">
</parameter>
</parameters>
</component>-->
</components>
</autofac>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="TechTalk.SpecFlow" publicKeyToken="0778194805d6db41" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
*