2017-05-30 33 views
0

我在VS 2015中使用SpecFlow来创建Selenium Webdriver自动化测试(尽管这与此问题无关)。在Visual Studio之外,我使用nunit3-console.exe运行测试。Visual Studio Test Explorer多次显示Specflow场景

里面VS我的App.config是设置为<unitTestProvider name="SpecRun+NUnit" />

我的问题涉及到的场景是如何出现在测试资源管理器。如果我创建了一个功能文件“FooTest.feature”用单一的方案“添加富号”与标签@mytag,这是在测试资源管理器显示的内容,当我按性状:

Test Explorer grouped by trait

或者,如果我通过班集体,我得到:

Test Explorer grouped by Class

我必须在这个任何控制?或者这只是它的工作方式?理想情况下,我只想查看“mytag”条目。 (或类别[mytag],只是不是所有的!)

回答

0

使用SpecRun + NUnit,您在SpecFlow + Runner(SpecRun)和NUnit的代码隐藏文件后面生成单元测试。 Visual Studio发现它们并因此让所有东西都变成双倍。 你有这个配置的原因吗?为什么你需要NUnit测试? 如果您使用SpecFlow + Runner,则必须将其仅配置为SpecRun

+0

好问题。我使用nunit控制台从持续集成运行测试,并且在一些测试中我使用了一些nunit特定的功能。但是,这可能是我在尝试认为有必要时尝试的那些东西之一。我会试着运行没有这个设置,看看是否有任何影响。 也许值得提问:什么时候有人需要使用SpecRun + NUnit? – Joel

+0

如果你想用nunit控制台运行测试,我收集+ NUnit是必需的,因为如果我将unitTestProvider更改为停止工作的SpecRun。 也许TestExplorer显示器只是我必须忍受的事情。 – Joel

+0

如果您配置SpecRun,则必须使用specrun.exe命令行来执行测试。 SpecRun.Runner软件包包含一个VS测试适配器,以便您在测试浏览器中看到测试。但它看起来像你不想使用SpecFlow + Runner,但NUnit。在这种情况下,您可以将unittestprovider简单地配置为NUnit。在这种情况下,你想添加NuGet包NUnit3TestAdapter。这包括用于NUnit的VS测试适配器。在这种情况下,我会从您的项目中删除所有SpecRun软件包。 –