【发布时间】:2014-01-30 02:15:21
【问题描述】:
问:是否可以在 VS 2013 中同时运行 xunit 测试和 MSTest?如果是这样,我做错了什么?
背景:
我已将 .NET 解决方案从 VS 2012 格式迁移到 VS 2013。
我无法让 xUnit 测试正常工作。经过多次故障排除(试验项目类型、MS Tools 版本、仅使用 xUnit 创建新项目以及试验 xUnit 版本和依赖项),我能够将问题缩小到将 MSTests 与 xUnit 测试放在同一个项目中。这在 VS 2012 之前有效。
只要我只包含一个标有[TestMethod] 属性的测试方法,就不会运行任何xUnit 测试。它们可能出现在 VS 测试资源管理器或 ReSharper 单元测试会话面板中,但它们在未运行测试(对于测试资源管理器)或 [?](对于单元测试会话)下带有 [!]。拥有一个具有[TestClass] 属性的类,但不是一个标有[TestMethod] 的方法仍然允许xUnit 测试运行。
这可能是 xUnit 组件中的一个错误,但我想看看其他人是否有任何相反的经验。
注意:几乎所有单元测试都基于 xUnit,MSTest 只是作为概念验证,以确保在以后使用 MSTest 时得到支持。
代码摘录:
MSTest:
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace YYY.XXX.Test.Unit
{
[TestClass]
public class MSTests
{
[TestMethod]
public void Test_Blah()
{
Assert.AreEqual(2, 2);
}
}
}
xUnit:
using Xunit;
namespace YYY.XXX.Test.Unit
{
public class FactTests
{
[Fact]
public void Test_Blah()
{
Assert.Equal(2, 2);
}
}
}
软件版本:
- MS Visual Studio Ultimate 2013 12.0.210051 REL
- JetBrains ReSharper 8.1
- xUnit.net 运行器适用于 Visual Studion 2012 和 2013 v0.99.2
- ReSharper 扩展:
- xUnit.net 测试支持 v1.3.0
- xUnit 项目包:
- xunit.1.9.2
- xunit.extensions.1.9.2
【问题讨论】:
-
如果它帮助别人,这为我解决了它(坏缓存的 xunit 库):stackoverflow.com/a/39353876/284598
标签: visual-studio-2013 resharper mstest xunit.net