using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; using Xunit.Extensions; using Xunit.Sdk; namespace xUnitStudy.WebApi.Test { /// /// 使用 xUnit /// 测试类不需要加任何特性 /// NUnit需要加TestFixture特性,MSTest需要加TestClass特性 /// [Trait(name:"测试类分组",value:"包括类内所有测试方法")] public class UseXUnitTest:IDisposable { /// /// 每次测试前的准备 /// 构造函数 替代 SetUp或TestInitialize,进行初始化 /// public UseXUnitTest() { } /// /// 每次测试后的清理 /// 实现IDisposable接口,替代TearDown或TestCleanup 进行清理释放操作 /// public void Dispose() { } /// /// Fact特性,标识测试方法 /// [Fact] public void Use_Fact_Test() { //永久通过测试断言的写法 Assert.True(true,"Fact特性,表示测试方法"); } [Fact(DisplayName = "定制测试方法名称")] public void Use_Fact_DisplayName_Test() { Assert.True(true,"使用Fact特性的DisplayName属性,表示:定制的测试方法名称"); } [Fact(Skip = "暂时忽略测试")] public void Use_Fact_Skip_Test() { Assert.True(true,"使用Fact特性的Skip属性,表示:暂时忽略测试"); } /// /// 使用Fact特性的Timeout参数 /// 设置:测试方法超时时间(豪秒) /// [Fact(Timeout =1000)] public void Use_Fact_Timeout_Test() { Assert.True(true,"使用Fact特性的Timeout属性,设置:测试方法超时时间(豪秒)"); } /// /// 分组测试,可以按分组显示测试结果 /// Trait可用于:程序集(AssemblyInfo.cs文件中)、测试类和测试方法三个层次 /// 一个测试方法同时属于多外组 /// [Fact] [Trait(name:"测试方法分组",value:"红队")] [Trait(name:"测试方法分组",value:"蓝队")] public void Use_Trait_Test() { Assert.True(true,"使用Trait特性,设置:测试分组,测试结果可以按组显示"); } /// /// 测试方法分组:红队 /// [Fact] [Trait(name: "测试方法分组", value: "红队")] public void Use_Trait_Red_Test() { Assert.True(true, "使用Trait特性,设置:测试分组,测试结果可以按组显示"); } /// /// 测试方法分组:蓝队 /// [Fact] [Trait(name: "测试方法分组", value: "蓝队")] public void Use_Trait_Blue_Test() { Assert.True(true, "使用Trait特性,设置:测试分组,测试结果可以按组显示"); } [Theory] [InlineData(1)] [InlineData(2)] [InlineData(3)] [InlineData(4)] public void Use_Theory_Test(int number) { var userPara = number; Assert.True(true,"使用Theory特性和InlineData特性,传递不同参数,多次执行测试"); } } }