实时测试无法使用NUnit

时间:2018-03-19 13:13:25

标签: visual-studio unit-testing nunit

当我打开实时测试时,我的测试显示“从实时单元测试中排除”。只有在我使用NUnit时才会发生这种情况,使用MSTest可以正常工作。

我有: Visual Studio Enterprise 2017(15.6.2) NUnit 3.10.1

代码的简短示例

using Microsoft.VisualStudio.TestTools.UnitTesting;
using NUnit.Framework;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
        }
    }

    [TestFixture]
    public class NUnitTest1
    {
        [Test]
        public void NUnitTestMethod1()
        {
        }
    }
}

TestMethod1()在烧杯旁边有一个绿色复选标记,表示实时单元测试已打开并由测试覆盖。 NUnitTestMethod1()有烧杯,但没有勾选并将鼠标放在上面显示“从实时单元测试中排除”。

我错过了什么?在我之外通过Nuget添加NUnit并添加额外的测试类/方法,没有进行其他编辑或更改。我正在全新安装Visual Studio,其中唯一添加的是ReSharper Ultimate(2017.3.2)。

2 个答案:

答案 0 :(得分:2)

您不能在一个项目中混合使用两个测试框架。 Visual Studio会检查每个已安装的测试适配器,以查看它是否处理给定的测试项目。一旦找到有效的,它就会停止检查其他的。在您的情况下,将使用MSTest适配器,并且由于MSTest适配器不了解NUnit测试,因此它不会运行这些测试。

创建一个单独的NUnit测试项目,确保不引用MSTest并将NUnit 3.10.0和NUnit3TestAdapter 3.10 NuGet包添加到项目中。如果您使用的是.NET 4.x,那么应该可以帮助您正常运行。如果您的目标是.NET Core,请参阅NUnit文档以获取更多信息https://github.com/nunit/docs/wiki/.NET-Core-and-.NET-Standard

这是15.6.2中NUnit项目的实时单元测试。注意绿色勾选标记。

enter image description here

答案 1 :(得分:0)

你有NUnit和NUnit3TestAdapter吗?根据{{​​3}},您需要NUnit 3.5.0和NUnit3TestAdapter 3.5.1。