尝试 运行 SpecFlow NUnit 测试时出错:"Cannot access a disposed object. Object name: 'GherkinLanguageService'"
Error when attempting to run SpecFlow NUnit test: "Cannot access a disposed object. Object name: 'GherkinLanguageService'"
我正在使用 SpecFlow 设置 NUnit C# 测试,但在我的 SpecFlowFeature 中声明的测试似乎没有被文本资源管理器拾取。当尝试手动 运行 场景(通过右键单击它们)时,我收到以下错误:
"Cannot access a disposed object. Object name: 'GherkinLanguageService'"
...根本没有响铃。任何人对如何让他们有任何建议 运行?
特征码如下:
Feature: SpecFlowFeature
As a user
I would like to go to the what we do page
In order to see what we do information
@UI
Scenario: What we do Browsing
Given I have the home page open
When I select what we do from the menu
Then I see the what we do information
@UI
Scenario: Add an Asset to a Client page
Given I have the home page open
When I go to a client page
And I click the Add Download button
And I fill in the form
And I choose a file to upload
And I submit the form
Then I see the newly-submitted file
并且步骤定义都是自动生成的。
编辑:我的测试项目中已安装的 NuGet 包列表:
- Microsoft.Net.Compilers 1.1.0-rc1
- NUnit 3.4.0
- NUnitTestAdapter 2.0.0
- Selenium.WebDriver 2.53.0
- SpecFlow 2.1.0
- SpecFlow.NUnit 2.1.0
- SpecFlow.NUnit.跑步者 2.1.0
查看此存储库中的代码 https://github.com/SabotageAndi/SpecFlow.Example.AllTestRunners 并将其与您的项目进行比较。
它包含一个用于 NUnit 2 和 NUnit 3.2.1 的 SpecFlow 项目。
NUnit 测试在 Visual Studio 测试资源管理器中可见。
首先,我会尝试将 NUnit 降级到 3.2.1。可能与 NUnitTestAdapter 有关。
问题是一个微妙的依赖性问题。之前的版本使用的是NUnit2.x,而我现在的版本使用的是NUnit3.x;现在为了使用 NUnit,我需要一个名为 "NUnit Test Adapter" 的 NuGet 包,但升级它是不够的:显然对于 NUnit 3+,有一个名为 different 的包 "NUnit 3 Test Adapter" 这不仅仅是前一个的升级版本 - 而是一个完全不同的版本。
安装 NUnit 3 测试适配器解决了我的问题。
我正在使用 SpecFlow 设置 NUnit C# 测试,但在我的 SpecFlowFeature 中声明的测试似乎没有被文本资源管理器拾取。当尝试手动 运行 场景(通过右键单击它们)时,我收到以下错误:
"Cannot access a disposed object. Object name: 'GherkinLanguageService'"
...根本没有响铃。任何人对如何让他们有任何建议 运行?
特征码如下:
Feature: SpecFlowFeature
As a user
I would like to go to the what we do page
In order to see what we do information
@UI
Scenario: What we do Browsing
Given I have the home page open
When I select what we do from the menu
Then I see the what we do information
@UI
Scenario: Add an Asset to a Client page
Given I have the home page open
When I go to a client page
And I click the Add Download button
And I fill in the form
And I choose a file to upload
And I submit the form
Then I see the newly-submitted file
并且步骤定义都是自动生成的。
编辑:我的测试项目中已安装的 NuGet 包列表:
- Microsoft.Net.Compilers 1.1.0-rc1
- NUnit 3.4.0
- NUnitTestAdapter 2.0.0
- Selenium.WebDriver 2.53.0
- SpecFlow 2.1.0
- SpecFlow.NUnit 2.1.0
- SpecFlow.NUnit.跑步者 2.1.0
查看此存储库中的代码 https://github.com/SabotageAndi/SpecFlow.Example.AllTestRunners 并将其与您的项目进行比较。
它包含一个用于 NUnit 2 和 NUnit 3.2.1 的 SpecFlow 项目。
NUnit 测试在 Visual Studio 测试资源管理器中可见。
首先,我会尝试将 NUnit 降级到 3.2.1。可能与 NUnitTestAdapter 有关。
问题是一个微妙的依赖性问题。之前的版本使用的是NUnit2.x,而我现在的版本使用的是NUnit3.x;现在为了使用 NUnit,我需要一个名为 "NUnit Test Adapter" 的 NuGet 包,但升级它是不够的:显然对于 NUnit 3+,有一个名为 different 的包 "NUnit 3 Test Adapter" 这不仅仅是前一个的升级版本 - 而是一个完全不同的版本。
安装 NUnit 3 测试适配器解决了我的问题。