小编Ste*_*man的帖子

如何通过代码执行XUnit测试

我有使用InlineData和MemberData属性在XUnit中编写的测试.我想通过我项目中其他地方的代码运行测试,并让属性自动填充测试数据,就像通常在VS测试运行器中运行时一样.

如果它不是属性,我会像任何其他常规方法一样直接调用方法.断言仍然被检查,它运行正常.但是,如果我直接调用具有属性的方法,则忽略属性,并且必须通过代码手动提供所有测试数据.在XUnit中是否有某种类型的测试运行器类可以重用来实现这一目标?我一直试图挖掘他们的API无济于事.

为什么我要这样做会得到一些解释,但请耐心等待.我正在针对特定接口而不是具体实现编写测试(例如,考虑标准集合接口).那里有足够的测试,我不想为每个具体的实施者复制粘贴它们(可能是几十个).我编写测试一次,然后将接口的每个具体实现作为测试的第一个参数传递,这是一个要测试的主题.

但这留下了一个问题.XUnit看到了测试并希望运行它,但它不能,因为在这一层没有具体的实现,只有接口.所以我想在更高层编写测试,只是新建具体实现,然后调用传递新主题的接口测试.我可以轻松地为只接受1个参数的测试做主题,但是对于我正在使用InlineData或MemberData的测试,我想重用已经提供的测试用例,并且只是将主题添加为第一个参数.

c# xunit xunit.net

6
推荐指数
2
解决办法
1712
查看次数

标签 统计

c# ×1

xunit ×1

xunit.net ×1