C# xUnit测试的多个不同事实属性或多个事实属性的替代品?
我不熟悉自动化,并且正在使用一个框架,在这个框架中,他们为xunit测试重命名/定制了事实和理论属性。好吧,他们只通过了考试,我也想发出警告。所以我遇到了Skip.If和xunit.skipablefact nuget包。这需要我将属性[SkippableFact]或[SkippableTheory]添加到单元测试中,以便使用skip.if显示警告。如果我不这样做,只需添加标准[事实][理论],它会显示一个红色的失败,这是我不希望看到的。这些只是烟雾测试,所以如果测试无法运行,我可以接受警告。请参阅我之前关于为什么要使用xunit.skipablefact的文章 所以我的问题是,我希望能够使用rename/customized Fact/Theory属性来知道如何使用[SkippableFact],或者仅仅是基于TraitatAttribute之类的简单的[Fact]。我已经尝试过重做构造函数并研究XUnitTestCaseDiscoveryr,但由于知识有限,没有成功 第一个例子是我们如何使用事实重命名和自定义,如果skip.if错误,它将抛出一个失败的测试。第二个是标准的xunit命名,它与第一个相同,并且也会抛出一个fail。第三个给了我想要的,这是一个警告,但我想以某种方式将[SkippableFact]合并到第一个中,因为您不能有多个事实/理论属性 提前谢谢C# xUnit测试的多个不同事实属性或多个事实属性的替代品?,c#,unit-testing,xunit,skip,C#,Unit Testing,Xunit,Skip,我不熟悉自动化,并且正在使用一个框架,在这个框架中,他们为xunit测试重命名/定制了事实和理论属性。好吧,他们只通过了考试,我也想发出警告。所以我遇到了Skip.If和xunit.skipablefact nuget包。这需要我将属性[SkippableFact]或[SkippableTheory]添加到单元测试中,以便使用skip.if显示警告。如果我不这样做,只需添加标准[事实][理论],它会显示一个红色的失败,这是我不希望看到的。这些只是烟雾测试,所以如果测试无法运行,我可以接受警告。请
[UI, Scenario("Example"), Tags(TestScope.Smoke,TestScope.Skippable, Priority.One)]
[Evaluate("Example")]
public async Task ExampleTest()
{
skip.if(Data=0,"No Data to run smoke test"//This throws failed result
//for test
}
[Fact]
public async Task ExampleTest()
{
skip.if(Data=0,"No Data to run smoke test"//This throws failed result
//for test
}
[SkippableFact]
public async Task ExampleTest()
{
skip.if(Data=0,"No Data to run smoke test"//This throws warning
//result for test which is what I want
}
嘿,我是这么做的:
public class MultiFact : FactAttribute
{
public MultiFact(params Type[] types)
{
var result = types.Select(Activator.CreateInstance).Cast<FactAttribute>().ToList();
if (result.Any(it => Text.IsNotBlank(it.Skip)))
{
Skip = string.Join(", ", result.Where(it => Text.IsNotBlank(it.Skip)).Select(it => it.Skip));
}
}
}
其中,仅HomeServiceAvailable和GuiCheck也继承自FactAttribute
有点笨重,但没关系
[MultiFact(typeof(OnlyWhenSomeServiceAvailable), typeof(GuiCheck))]