我有一个问题,我相信,SpecRun。首先,一些背景信息:
我在Visual Studio 2012中开始了一个全新的测试项目。然后我安装了一些NuGet包:SpecFlow,Selenium.WebDriver,Coypu和SpecRun.NUnit。在我创建了我的第一个测试代码并且我想运行测试之后,我看到我的测试在测试资源管理器中出现了两倍。其中一个出现'[testname]',就像我以前在文本资源管理器中看到的那样。另一方面,另一个在[projectname] [foldername] [featurename]中显示'[testname]。我不想要的更多信息。因此,我想卸载SpecRun并转回我习惯使用的NUnit测试适配器。在这里,我开始变得凌乱。我试图通过包管理器控制台卸载。 PMC说它已被删除,SpecRun已从我的项目中删除,但它仍然显示为安装在Visual Studio的“管理Nuget包”窗口中。
我目前的情况是,我有两个几乎相同的项目具有相同的设置。旧的工作正常,新工作正在工作,但如上所述,我的所有测试都显示为双倍。唯一的区别是我的新项目在其中的某个地方有SpecRun,我无法删除它。因此,我认为SpecRun在某种程度上造成了这个问题。清洁解决方案,重建解决方案,重试删除SpecRun,这一切都没有帮助。
澄清,我一直遇到的问题: 1.测试在测试资源管理器中显示两次,一次显示为“[testname]”,另一次显示为[projectname] [foldername] [featurename]中的'[testname]; 2.我似乎无法从Visual Studio 2012中删除SpecRun。我可以从我的解决方案中删除(/隐藏)它,但它一直在Visual Studio中显示,我无法完全删除它。
[编辑]一个额外的指针,SpecRun仍然想要做的事情是我的TestExplorer中仍然有一个SpecRun评估测试我无法摆脱!
[解决] 因为我还没有找到解决这个问题的方法,所以我学会了解决这个问题并解决它。当詹姆斯发布答案时,我再次调查了这个话题,试图看看詹姆斯给出的答案是否可以解决问题。但我所看到的是所有“重复测试”,我无法摆脱已经消失的地方,而SpecRun也从VS2012中消失了。甚至'SpecRun评估测试'也在我的TestExplorer中消失了。这没有做任何我以前没做过的事情(重启VS2012,清理解决方案,重建解决方案等)。所以不幸的是,我无法分辨出解决问题的方法,但问题已经解决了。
答案 0 :(得分:2)
App.config中应该有两个SpecRun条目:
<unitTestProvider name="SpecRun" />
<plugins>
<add name="SpecRun" />
</plugins>
在项目引用中引用了两个SpecRun(SpecRun.SpecFlowPlugin和TechTalk.SpecRun)
这似乎至少对我有用。
一旦删除了对SpecRun的所有引用,那么NuGet有点困惑的事实并不重要,但是如果你想修复它,请尝试从packages.config文件中删除相应的<package>
条目。
答案 1 :(得分:0)
我在Visual Studio 2013中遇到过类似的问题。 只需禁用Visual Studio的Specflow扩展,重新启动Visual Studio,然后启用扩展,再次重新启动Visual Studio。那么一切都会好起来的。