问:是否可以在 VS 2013 中与 MSTest 并行运行 xunit 测试?如果是这样,我做错了什么?
背景:
我已将 .NET 解决方案从 VS 2012 格式迁移到 VS 2013。
我无法让 xUnit 测试工作。经过多次故障排除(试验项目类型、MS Tools 版本、仅使用 xUnit 创建新项目,以及试验 xUnit 版本和依赖项)后,我能够将问题缩小到将 MSTest 与 xUnit 测试放在同一个项目中。这在 VS 2012 之前有效。
只要我只包含一种标有 [TestMethod] 的测试方法属性,不会运行任何 xUnit 测试。它们可能会出现在 VS 测试资源管理器或 ReSharper 单元测试 session 面板中,但它们会在 Not Run Tests(对于测试资源管理器)或 [?](对于单元测试 session )下显示为 [!]。与 [TestClass] 一起上课属性,但不是标记为 [TestMethod] 的方法仍然允许运行 xUnit 测试。
事实证明,这是 xUnit 组件中的一个错误,但我想看看其他人是否有任何相反的经验。
注意:几乎所有的单元测试都基于 xUnit,MSTest 只是作为一个概念验证来确保它在以后使用 MSTests 的情况下得到支持。
代码摘录:
MS测试:
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace YYY.XXX.Test.Unit
{
[TestClass]
public class MSTests
{
[TestMethod]
public void Test_Blah()
{
Assert.AreEqual(2, 2);
}
}
}
x单位:
using Xunit;
namespace YYY.XXX.Test.Unit
{
public class FactTests
{
[Fact]
public void Test_Blah()
{
Assert.Equal(2, 2);
}
}
}
软件版本:
请您参考如下方法:
Resharper 问题 xunit/vstestrunner 修复:(也花了很长时间才弄明白这个问题)
您可以获得 resharper 8.2 或更高版本。
一键关闭 Resharper 测试
在 VS 中单击 Resharper -> 选项 -> 单元测试 - 取消选中启用单元测试。
和
测试 -> 测试设置 -> 取消选中保持测试执行引擎运行。
这应该允许您同时运行两个引擎。我认为正在发生的事情是,一旦开始,它就会保持不变,并且很难让另一个工作
关键字:executor://xunit/VsTestRunner2




