对于ASP.NET Boilerplate
,我正在尝试为该项目实施 Xunit 测试。有没有什么方法可以为测试方法提供参数并配置测试方法的流程顺序。
在正常的测试项目中,我可以使用[InlineData("Test", 3)]
为测试方法提供值public async void AllInOne_Test(string userName, int count)
,但是对于ASP.NET Boilerplate
,它没有将值传递给测试方法。
我也想在TestB之后处理TestB,我怎么能做到这一点?
Update1:
对于InlineData
问题,我可以继承TheoryAttribute
如下:
public sealed class MultiTenantTheoryAttribute : TheoryAttribute
{
public MultiTenantTheoryAttribute()
{
if (!CloudConsts.MultiTenancyEnabled)
{
Skip = "MultiTenancy is disabled.";
}
}
}
然后,像下面这样使用它:
[MultiTenantTheory]
[InlineData("Test_CreateCoupon")]
public async Task CreateCoupon_Test(string title)
{
//....
}
但是,我仍然对测试方法处理顺序有疑问。
[MultiTenantTheory]
[InlineData("Test_CreateCoupon")]
public async Task CreateCoupon_Test(string title)
{
//...
}
[MultiTenantTheory]
[InlineData("Test_CreateCoupon", "Test_UpdateCoupon")]
public async Task UpdateCoupon_Test(string oldTitle, string updateTitle)
{
//。。。
}
在我的测试中,我有CreateCoupon_Test
and UpdateCoupon_Test
,我想 exec CreateCoupon_Test
,然后UpdateCoupon_Test
当我运行所有测试时。但是,目前,它的顺序是随机的,我UpdateCoupon_Test
之前运行过CreateCoupon_Test
,然后我的测试失败了,因为我更新了尚未创建的记录。