共享数据

develop
bicijinlian 7 years ago
parent 0ca4b3541d
commit a6a5566d3a

@ -14,11 +14,11 @@ namespace xUnitStudy.WebApi.Test
/// <summary> /// <summary>
/// 输出窗口的测试选项,显示测试相关信息 /// 输出窗口的测试选项,显示测试相关信息
/// </summary> /// </summary>
public class TestCaseOrdererTest: ITestCaseOrderer public class TestCaseOrderTest: ITestCaseOrderer
{ {
private readonly IMessageSink diagnosticMessageSink; private readonly IMessageSink diagnosticMessageSink;
public TestCaseOrdererTest(IMessageSink diagnosticMessageSink) public TestCaseOrderTest(IMessageSink diagnosticMessageSink)
{ {
this.diagnosticMessageSink = diagnosticMessageSink; this.diagnosticMessageSink = diagnosticMessageSink;
} }

@ -14,10 +14,10 @@ namespace xUnitStudy.WebApi.Test
/// https://xunit.github.io/docs/comparisons /// https://xunit.github.io/docs/comparisons
/// </summary> /// </summary>
[Trait("测试断言分组", "默认组")] [Trait("测试断言分组", "默认组")]
public class UseXUnitAssertTest : IDisposable public class UseAssertTest : IDisposable
{ {
#region 准备 #region 准备
public UseXUnitAssertTest() public UseAssertTest()
{ {
} }

@ -0,0 +1,27 @@
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;
using xUnitStudy.Model;
namespace xUnitStudy.WebApi.Test
{
/// <summary>
/// 设置全局共享
/// </summary>
[CollectionDefinition("Demo Collection")]
public class CollectionFixtureSetup:ICollectionFixture<FixtureDemo>
{
//这个类没有代码,而不需要创建。
//其目的是简单地设置测试集共享数据
//只要设置[CollectionDefinition("Demo Collection")]特性
//并实现IClassFixture<T>接口
}
}

@ -14,16 +14,16 @@ using xUnitStudy.Model;
namespace xUnitStudy.WebApi.Test namespace xUnitStudy.WebApi.Test
{ {
/// <summary> /// <summary>
/// 类内所有测试,共享一个实例 /// 测试类级别的共享(类内所有测试用例,共享一个实例)
/// 注意:因为不能保证各个单元测试的执行先后顺序或者特别是并行单元测试时, /// 注意:因为不能保证各个单元测试的执行先后顺序或者特别是并行单元测试时,
/// 很容因共享类的并发操作导致单元测试失败。共享须谨慎。 /// 很容因共享类的并发操作导致单元测试失败。共享须谨慎。
/// 适合读,不适合写 /// 适合读,不适合写
/// </summary> /// </summary>
public class UseXUnitIClassFixtureTest:IClassFixture<FixtureDemo>, IDisposable public class UseIClassFixtureTest:IClassFixture<FixtureDemo>, IDisposable
{ {
FixtureDemo fixtureDemo; FixtureDemo fixtureDemo;
public UseXUnitIClassFixtureTest(FixtureDemo fixture) public UseIClassFixtureTest(FixtureDemo fixture)
{ {
this.fixtureDemo = fixture; this.fixtureDemo = fixture;
} }

@ -0,0 +1,39 @@
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;
using xUnitStudy.Model;
namespace xUnitStudy.WebApi.Test
{
/// <summary>
/// 测试集级别的共享
/// </summary>
[Collection("Demo Collection")]
public class UseICollectionFixtureTest
{
FixtureDemo fixtureDemo;
public UseICollectionFixtureTest(FixtureDemo fixture)
{
fixtureDemo = fixture;
}
[Fact]
public void Test()
{
var persons = fixtureDemo.Persons;
//do something with persons
Assert.True(true, "使用全局共享对象");
}
}
}

@ -0,0 +1,67 @@
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;
using xUnitStudy.Model;
namespace xUnitStudy.WebApi.Test
{
/// <summary>
/// 测试用例级别的共享
/// </summary>
public class UseFixtureTest:IDisposable
{
/*
Test case
1IDisposableDispose()
b --> --> 1 --> Dispose() --> -->
a --> --> 2 --> Dispose() --> -->
x --> --> 2 --> Dispose() --> -->
m --> --> 2 --> Dispose() --> -->
........
xUnit
*/
object sharedData;
public UseFixtureTest()
{
//测试用例执行前做准备
sharedData = "sharedate";
}
[Fact]
public void Case2_Test()
{
Assert.Equal("sharedate", sharedData.ToString());
}
[Fact]
public void Case1_Test()
{
Assert.Equal("sharedate", sharedData.ToString());
}
public void Dispose()
{
//测试用例执行后做清理
sharedData = null;
}
}
}

@ -8,10 +8,10 @@ using Xunit.Abstractions;
namespace xUnitStudy.WebApi.Test namespace xUnitStudy.WebApi.Test
{ {
public class UseXUnitOutputTest public class UseOutputTest
{ {
private readonly ITestOutputHelper output; private readonly ITestOutputHelper output;
public UseXUnitOutputTest(ITestOutputHelper output) public UseOutputTest(ITestOutputHelper output)
{ {
this.output = output; this.output = output;
} }

@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace xUnitStudy.WebApi.Test
{
public class UseXUnitICollectionFixtureTest
{
}
}

@ -82,13 +82,15 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="AutoFac\AutofacStudy.cs" /> <Compile Include="AutoFac\AutofacStudy.cs" />
<Compile Include="TestCaseOrderTest.cs" />
<Compile Include="UseFixture\CollectionFixtureSetup.cs" />
<Compile Include="StudentBll\StudentBllTest.cs" /> <Compile Include="StudentBll\StudentBllTest.cs" />
<Compile Include="StudentDal\StudentDalTest.cs" /> <Compile Include="StudentDal\StudentDalTest.cs" />
<Compile Include="TestCaseOrdererTest.cs" /> <Compile Include="UseAssertTest.cs" />
<Compile Include="UseXUnitAssertTest.cs" /> <Compile Include="UseFixture\UseFixtureTest.cs" />
<Compile Include="UseXUnitIClassFixtureTest.cs" /> <Compile Include="UseFixture\UseClassFixtureTest.cs" />
<Compile Include="UseXUnitICollectionFixtureTest.cs" /> <Compile Include="UseFixture\UseCollectionFixtureTest.cs" />
<Compile Include="UseXUnitOutputTest.cs" /> <Compile Include="UseOutputTest.cs" />
<Compile Include="UseXUnitTest.cs" /> <Compile Include="UseXUnitTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>

Loading…
Cancel
Save