C# NUnit在从AutoFixture/AutoMQ请求模拟时忽略测试
我将C# NUnit在从AutoFixture/AutoMQ请求模拟时忽略测试,c#,unit-testing,nunit,autofixture,automoq,C#,Unit Testing,Nunit,Autofixture,Automoq,我将NUnit与AutoFixture、AutoMoq和Theory属性一起使用 这是我的测试方法 [TestFixture] public class TestClass { [Theory, AutoMoqData] public void TestI(I i) { } } 接口 public interface I { } 属性呢 public class AutoMoqDataAttribute : AutoDataAttribute { publi
NUnit
与AutoFixture
、AutoMoq
和Theory
属性一起使用
这是我的测试方法
[TestFixture]
public class TestClass
{
[Theory, AutoMoqData]
public void TestI(I i)
{ }
}
接口
public interface I
{ }
属性呢
public class AutoMoqDataAttribute : AutoDataAttribute
{
public AutoMoqDataAttribute()
: base(new Fixture().Customize(new AutoMoqCustomization()))
{ }
}
当我构建解决方案时,就会发现测试。当我运行测试时,以下内容将写入输出窗口:
NUnit 1.0.0.0 executing tests is started
Run started: [...].Test.dll
NUnit 1.0.0.0 executing tests is finished
Test adapter sent back a result for an unknown test case. Ignoring result for 'TestI(Mock<TestClass+I:1393>.Object)'.
NUnit 1.0.0.0开始执行测试
已启动运行:[…].Test.dll
NUnit 1.0.0.0执行测试完成
测试适配器发回未知测试用例的结果。忽略“TestI(Mock.Object)”的结果。
使用xUnit.net
时,上述测试运行正常。为什么它不能与NUnit一起工作
我在测试项目中安装了以下Nuget软件包:
- 自动夹具3.18.1
- AutoFixture.AutoMoq 3.18.1
- 最低起订量4.2.1402.2112
- NUnit 2.6.3
- NunitestAdapter 1.0
我正在Visual Studio 2013 Professional中运行测试。我还尝试在单独的GUI运行程序中运行测试,结果相同。以下NUnit测试通过了Visual Studio 2013中的外接程序:
内置测试运行程序没有发现上述测试。这看起来像是测试运行程序中的错误。您使用的是哪个版本的NUnit,以及哪个测试运行程序?@NikosBaxevanis,相关问题。我已经用这些信息更新了帖子。很有趣!我将尝试TestDriven.Net。但正如我上面提到的,我的测试在独立的NUnit runner中也不起作用。您的测试可能未被发现,因为类上缺少
TestFixture
。我还注意到您使用的是Test
而不是Theory
,这是出于某种原因吗?属性用法来自安装NuGet软件包后生成的示例代码。现在我已经尝试了您的示例。正如您所提到的,它在TestDriven.Net中运行良好。关于属性,您也是正确的,[TestFixture]不再是必需的。除此之外,不幸的是,这并不能解决我的问题,因为我需要在构建服务器上使用NUnit runner运行测试。有关AutoFixture.NUnit2的大多数(如果不是全部)联机信息都可以找到并访问。如果您无法从这些URL中找到构建服务器的解决方案,您可以访问AutoFixture项目站点。谢谢,但是我的构建服务器没有问题。那里一切正常。我提到它只是为了解释为什么切换到TestDriven.Net不是一个选项。
internal class AutoMoqDataAttribute : AutoDataAttribute
{
internal AutoMoqDataAttribute()
: base(
new Fixture().Customize(
new AutoMoqCustomization()))
{
}
}
public interface IInterface
{
}
public class Tests
{
[Test, AutoMoqData]
public void IntroductoryTest(IInterface i)
{
Assert.NotNull(i);
}
}