【问题标题】:Visual Studio 2013 - no longer able to run xunit tests side-by-side with MSTestVisual Studio 2013 - 不再能够与 MSTest 并行运行 xunit 测试
【发布时间】: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

【问题讨论】:

标签: visual-studio-2013 resharper mstest xunit.net


【解决方案1】:

Resharper 问题 xunit/vstestrunner 修复:(也花了很长时间才解决这个问题) 您可以获得 resharper 8.2 或更高版本。

  • 或者- 一次关闭 Resharper 测试
    在 VS 中点击 Resharper -> 选项 -> 单元测试 - 取消选中启用单元测试。

测试 -> 测试设置 -> 取消选中保持测试执行引擎运行。

这应该允许您同时运行两个引擎。我认为正在发生的事情是,一旦启动它就会停留并且很难让另一个工作

关键字:executor://xunit/VsTestRunner2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多