我正在使用SpecFlow设置NUnit C#测试,但是我的SpecFlowFeature中声明的测试似乎不会被Text Explorer接收。尝试手动运行方案时(通过右键单击它们),我收到以下错误:
"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包列表:
答案 0 :(得分:1)
查看此回购https://github.com/SabotageAndi/SpecFlow.Example.AllTestRunners中的代码,并将其与您的项目进行比较。
它包含NUnit 2和NUnit 3.2.1的SpecFlow项目 可以在Visual Studio测试资源管理器中看到NUnit测试。
首先我会尝试降级到NUnit的3.2.1。也许与NUnitTestAdapter有关的问题。
答案 1 :(得分:1)
问题是一个微妙的依赖问题。以前的版本使用NUnit 2.x,而我当前的版本使用NUnit 3.x;现在为了使用NUnit,我需要一个名为“NUnit Test Adapter”的NuGet包,但升级它是不够的:显然对于NUnit 3+,有一个名为“NUnit 3 Test Adapter”的不同的包。不仅仅是前一个版本的升级版本 - 而是一个完全不同的版本。
安装NUnit 3测试适配器解决了我的问题。