0

我相信 SpecRun 有问题。首先,一些背景资料:

我在 Visual Studio 2012 中启动了一个全新的测试项目。然后我安装了一些 NuGet 包:SpecFlow、Selenium.WebDriver、Coypu 和 SpecRun.NUnit。在我创建了我的第一个测试代码并且我想运行测试之后,我看到我的测试在测试资源管理器中显示为两倍。正如我习惯在文本资源管理器中看到的那样,其中一种情况显示“[testname]”。另一方面,另一个在 [projectname][foldername][featurename] 中显示 '[testname]。一大堆我不想要的更多信息。因此,我想卸载 SpecRun 并返回到我习惯使用的 NUnit 测试适配器。在这里,我开始变得一团糟。我试图通过包管理器控制台卸载。PMC 说它已被删除,SpecRun 已从我的项目中删除,但它仍显示为已安装在“管理 Nuget 包”中

我目前的情况是我有两个几乎相同的项目具有相同的设置。旧的可以正常工作,新的可以正常工作,但是如上所述,我的所有测试都显示为两倍。唯一的区别是我的新项目在我无法删除的某个地方有 SpecRun。因此,我认为 SpecRun 以某种方式制造了这个问题。清洁解决方案,重建解决方案,重试删除 SpecRun,这一切都没有帮助。

澄清一下,我一直遇到的问题: 1. 测试在测试资源管理器中显示 op 两次,一次为 '[testname]',另一次为 '[testname] in [projectname][foldername][featurename];2. 我似乎无法从 Visual Studio 2012 中删除 SpecRun。我可以从我的解决方案中删除(/隐藏)它,但它一直显示在 Visual Studio 中,我无法完全删除它。

[编辑] SpecRun 仍然想做某事的一个额外指针是,我的 TestExplorer 中仍然有一个我无法摆脱的 SpecRun 评估测试!


[已解决] 因为我还没有解决这个问题的方法,所以我学会了忍受它并解决它。当詹姆斯发布答案时,我再次研究了这个主题,试图看看詹姆斯给出的答案是否可以解决问题。但是我看到的是,我无法摆脱的所有“重复测试”已经消失了,而 SpecRun 也从 VS2012 中消失了。甚至“SpecRun 评估测试”在我的 TestExplorer 中也消失了。这没有做我以前没有做过的任何事情(重新启动 VS2012,清理解决方案,重建解决方案等)。不幸的是,我不知道是什么解决了问题,但问题已经解决了。

4

2 回答 2

2

App.config 中应该有两个 SpecRun 条目:

<unitTestProvider name="SpecRun" />
<plugins>
  <add name="SpecRun" />
</plugins>

以及项目参考中对 SpecRun 的两个参考(SpecRun.SpecFlowPlugin 和 TechTalk.SpecRun)

  1. 将 unitTestProvider 改回 MsTest 或 NUnit
  2. 删除 SpecRun 插件
  3. 删除两个引用
  4. 重新生成您的功能文件(右键单击并选择运行自定义工具)
  5. 清理并构建您的项目

这似乎至少对我有用。

一旦删除了对 SpecRun 的所有引用,那么 NuGet 有点混乱的事实并不重要,但是如果您想修复它,请尝试<package>从 packages.config 文件中删除相应的条目。

于 2013-11-05T14:53:37.220 回答
0

我在 Visual Studio 2013 中遇到了类似的问题。只需禁用 Visual Studio 的 Specflow 扩展,重新启动 Visual Studio,然后启用扩展,再次重新启动 Visual Studio。那么一切都会好起来的。

于 2015-12-09T08:49:20.727 回答