当我打开实时测试时,我的测试显示“从实时单元测试中排除”。只有在我使用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)。
答案 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项目的实时单元测试。注意绿色勾选标记。
答案 1 :(得分:0)
你有NUnit和NUnit3TestAdapter吗?根据{{3}},您需要NUnit 3.5.0和NUnit3TestAdapter 3.5.1。