【发布时间】:2016-05-31 11:12:23
【问题描述】:
我喜欢使用属性定义测试的选项。但是,我一定做错了什么。我已经安装了软件包:
<packages>
<package id="AutoFixture" version="3.46.0" targetFramework="net451" />
<package id="AutoFixture.AutoNSubstitute" version="3.46.0" targetFramework="net451" />
<package id="AutoFixture.NUnit3" version="3.46.0" targetFramework="net451" />
<package id="NSubstitute" version="1.10.0.0" targetFramework="net451" />
<package id="NUnit" version="3.2.1" targetFramework="net451" />
</packages>
单个替换参数经过:
[Theory, AutoSubstituteData]
public void Test_Single([Substitute] Service svc)
{
// executed, shown as success
}
当混合替换和其他一些值失败时:
[Theory, AutoSubstituteData]
public void Test_Mixed(int version, string name, [Substitute] IService svc)
{
// not executed, shown as inconclusive
}
属性:
public class AutoSubstituteDataAttribute : Ploeh.AutoFixture.NUnit3.AutoDataAttribute
{
public AutoSubstituteDataAttribute()
: base(new Fixture().Customize(new AutoConfiguredNSubstituteCustomization()))
{
}
}
测试输出显示:
NUnit 适配器 3.0.10.0:测试执行完成
测试适配器发回未知测试用例的结果。忽略 'Test_Mixed(150,"name04f0cd50-e89f-4a8f-db6-dab69b58e98e",Castle.Proxies.IServiceProxy)' 的结果。
我如何让它在 VS2015 或 NUnit 3x 中正常工作?
【问题讨论】:
-
您可以使用 xUnit [v2] 吗?您会发现几乎可以正常工作的东西(和/或可以用谷歌搜索常见消息等)
-
@RubenBartelink ,我现在已经安装了 xunit,包括 xunit.runner.visualstudio 版本 2.1.0,重新启动 VS,重新编译。我添加的 XUnit 测试没有出现在测试资源管理器中。试图安装 xunit.runners,但它说不支持 net451。这听起来不像“正常工作”。我宁愿用 NUnit 来解决这个问题,版本 3 是一个相当不错的测试框架。
-
很高兴你得到了排序; stackoverflow.com/questions/16214684/why-is-the-xunit-runner-not-finding-my-tests/16214704#16214704:P
-
虽然我可以重现此问题,但它看起来像是 NUnit 3 Visual Studio 测试适配器的问题。如果我使用 NUnit 3 命令行运行程序运行这些测试,它们都会运行并通过。我可以建议您为 NUnit 3 Visual Studio 测试适配器提出问题吗?
-
@RobertCutajar-Robajz 我同意这可能是同一个问题,而且我还可以看到你在那里发帖,我认为这是个好主意 :)
标签: c# testing nunit autofixture nsubstitute