[小北De编程手记] : Lesson 06 玩转 xUnit.Net 之 定义自己的FactAttribute

  xUnit.Net本身提供了标记测试方法的标签Fact和Theory。在前面的文章《Lesson 02 玩转 xUnit.Net 之 基本UnitTest & 数据驱动》中,也对它们做了详细的介绍。这一篇,来分享一个高级点的主题:如何扩展标签?还是老规矩,看一下议题:

  • 概述
  • 让xUnit.Net识别你的测试Attribute
  • 定义运行策略:XunitTestCase
  • 与Runner交流:消息总线 - IMessageBus
  • 总结

  这一篇有一些不大容易理解的东东。因此,我是默认读者已经读过之前的五篇文章(或者已经充分的了解xUnit.Net的基本知识)。另外,最好熟悉面向对象的方法,一些接口编程的实践。(之前文章的可以在这里找到《[小北De编程手记]:玩转 xUnit.Net》)。当然,要是仅仅达到使用xUnit.Net做做UT,完成基本工作的级别。我想之前的文章所描述的知识点已经足够了。要是还想进一步了解xUnit.Net。那么,这一篇所讲的内容也许是你进阶的必经之路。也是本人觉得最好的一个开端... ...

(一)概述

  在单元测试的实践中,Fact和Theory已经能满足我们许多的要求。但是对于一些特殊的情况,例如:需要多次运行一个方法的测试用例(10秒钟内支付接口只能做3次),或者需要开启多个线程来运行测试用例。这些需求我们当然可以通过编码来完成。但如果可以用属性标记的方式来简单的实现这样的功能。就会大大降低使用者的编程复杂度,这样的能力也是在设计一个单元测试框架的时候需要考虑的。xUnit.Net为我们提供的优雅的接口,方便我们对框架本身进行扩展。这一篇,我们就来介绍如何实现自定义的测试用例运行标签(类似Fact和Theory)。这一篇的内容略微有点复杂,为了让大家能快速的了解我要实现什么样的功能,先来看一下最终的Test Case:

     public class RetryFactSamples
{
public class CounterFixture
{
public int RunCount;
} public class RetryFactSample : IClassFixture<CounterFixture>
{
private readonly CounterFixture counter; public RetryFactSample(CounterFixture counter)
{
this.counter = counter;
counter.RunCount++;
} [RetryFact(MaxRetries = )]
public void IWillPassTheSecondTime()
{
Assert.Equal(, counter.RunCount);
}
}
}

  可以看到,用来标记测试用了的属性标签不再是xUnit.Net提供的Fact或者Theory了,取而代之的是自定义的RetryFact标签。顾名思义,实际的测试过程中标签会按照MaxRetries所设置的次数来重复执行被标记的测试用例。自定义运行标签主要有下面几个步骤:

  • 创建标签自定义标签
  • 创建自定义的TestCaseDiscoverer
  • 创建自定义的XunitTestCase子类
  • 重写消息总线的传输逻辑

  该功能也是xUnit.Net官网上提供的示例代码之一。有兴趣的小伙伴可以去看看,那里还有很多其他的Demo。是不是觉得这个功能很不错呢?接下来我就开始向大家介绍如何实现它吧。

(二)让xUnit.Net识别你的测试Attribute

  最开始当然是需要创建一个RetryFact的属性标签了,观察一下Theory的定义。你会发现它是继承自Fact 并作了一些扩展。因此,我们自定义的测试标签页从这里开始,代码如下:

     [XunitTestCaseDiscoverer("Demo.UnitTest.RetryFact.RetryFactDiscoverer", "Demo.UnitTest")]
public class RetryFactAttribute : FactAttribute
{
/// <summary>
/// Number of retries allowed for a failed test. If unset (or set less than 1), will
/// default to 3 attempts.
/// </summary>
public int MaxRetries { get; set; }
}

  那么,xUnit.Net如何识别我们自定义标签呢?换言之,就是如何知道自定义标签标记的方法是一个需要Run的测试用例?秘密就在前面代码中的XunitTestCaseDiscoverer中。我们需要使用XunitTestCaseDiscoverer标签为自定义的属性类指定一个Discoverer(发现者),并在其中定义返回TestCase的逻辑。代码如下:

     public class RetryFactDiscoverer : IXunitTestCaseDiscoverer
{
readonly IMessageSink diagnosticMessageSink; public RetryFactDiscoverer(IMessageSink diagnosticMessageSink)
{
this.diagnosticMessageSink = diagnosticMessageSink;
} public IEnumerable<IXunitTestCase> Discover(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute)
{
var maxRetries = factAttribute.GetNamedArgument<int>("MaxRetries");
if (maxRetries < )
{
maxRetries = ;
} yield return new RetryTestCase(diagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), testMethod, maxRetries);
}
}

  代码中添加了对maxRetries初始值修正的逻辑(至少运行3次)。需要说明的是,XunitTestCaseDiscoverer所指定的类应当是实现了IXunitTestCaseDiscoverer接口的(如上面的代码)。该接口定义了一个xUnit.Net Framework用于发现测试用例的方法Discover。其定义如下:

 namespace Xunit.Sdk
{
// Summary:
// Interface to be implemented by classes which are used to discover tests cases
// attached to test methods that are attributed with Xunit.FactAttribute (or
// a subclass).
public interface IXunitTestCaseDiscoverer
{
// Summary:
// Discover test cases from a test method.
//
// Parameters:
// discoveryOptions:
// The discovery options to be used.
//
// testMethod:
// The test method the test cases belong to.
//
// factAttribute:
// The fact attribute attached to the test method.
//
// Returns:
// Returns zero or more test cases represented by the test method.
IEnumerable<IXunitTestCase> Discover(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute);
}
}

  此时再回顾一下开始定义的RetryFact属性标签,为它指定了自定义的Test Case Discoverer。so... ... 在xUnit.NetRunner运行Test Case时就可以识别出来我们所自定义的标签了。另外,RetryFactDiscoverer采用了构造函数注入的方式获取到了一个现实了IMessageSink接口的对象,这个对象是用来想Runner传递消息的会在消息总线的部分介绍。

(三)定义运行策略:XunitTestCase

  细心的同学应该已经发现,上一部分Discover方法的返回值是一个可枚举类型并且实现了IXunitTestCase接口的对象,xUnit.Net Framework 会以此调用接口的RunAsync方法。我们的例子中返回了自定义的RetryTestCase对象,这一部分我们就来看看它是如何实现的。Discoverer只是告诉xUnit.Net哪些方法是测试方法,而如果想要自定义测试方法运行的时机或者想在运行前后添加处理逻辑的话就需要创建自定义的TestCase类了。这里我们需要实现的逻辑就是根据用户代码在RetryFact中设置的运行次数来重复运行用例,代码如下:

 namespace Demo.UnitTest.RetryFact
{
[Serializable]
public class RetryTestCase : XunitTestCase
{
private int maxRetries; [EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("Called by the de-serializer", true)]
public RetryTestCase() { } public RetryTestCase(
IMessageSink diagnosticMessageSink,
TestMethodDisplay testMethodDisplay,
ITestMethod testMethod,
int maxRetries)
: base(diagnosticMessageSink, testMethodDisplay, testMethod, testMethodArguments: null)
{
this.maxRetries = maxRetries;
} // This method is called by the xUnit test framework classes to run the test case. We will do the
// loop here, forwarding on to the implementation in XunitTestCase to do the heavy lifting. We will
// continue to re-run the test until the aggregator has an error (meaning that some internal error
// condition happened), or the test runs without failure, or we've hit the maximum number of tries.
public override async Task<RunSummary> RunAsync(IMessageSink diagnosticMessageSink,
IMessageBus messageBus,
object[] constructorArguments,
ExceptionAggregator aggregator,
CancellationTokenSource cancellationTokenSource)
{
var runCount = ; while (true)
{
// This is really the only tricky bit: we need to capture and delay messages (since those will
// contain run status) until we know we've decided to accept the final result;
var delayedMessageBus = new DelayedMessageBus(messageBus);

var summary = await base.RunAsync(diagnosticMessageSink, delayedMessageBus, constructorArguments, aggregator, cancellationTokenSource);
if (aggregator.HasExceptions || summary.Failed == || ++runCount >= maxRetries)
{
delayedMessageBus.Dispose(); // Sends all the delayed messages
return summary;
} diagnosticMessageSink.OnMessage(new DiagnosticMessage("Execution of '{0}' failed (attempt #{1}), retrying...", DisplayName, runCount));
}
} public override void Serialize(IXunitSerializationInfo data)
{
base.Serialize(data); data.AddValue("MaxRetries", maxRetries);
} public override void Deserialize(IXunitSerializationInfo data)
{
base.Deserialize(data); maxRetries = data.GetValue<int>("MaxRetries");
}
}
}

  上面的代码主要要注意以下几点:

  • 自定义的TestCase类最好是继承自XunitTestCase(如果有更深层次的要求可以直接实现IXunitTestCase)。
  • 重写基类的RunAsync方法,该方法会在Runner运行Test Case的时候被调用。
  • 重写Serialize / Deserialize 方法,像xUnit.Net上下文中添加对自定义属性值的序列化/反序列化的支持。
  • 目前,无参构造函数RetryTestCase目前是必须有的(后续的版本中应当会移除掉)。否则,Runner会无法构造无参的Case。

最后,在RunAsync中,我们根据用户设置的次数运行测试用例。如果一直没有成功,则会向消息接收器中添加一个错误的Message(该消息最终会通过消息总线返回给实际的Runner)。可以看到,DelayedMessageBus (代码中 Line38) 是我们自定义的消息总线。

(四)与Runner交流:消息总线 - IMessageBus

  在测试用例被xUnit.Net对应的Runner运行的时候,Runner和测试框架的消息沟通是通过消息总线的形式来实现的,这也是很多类似系统都会提供的能力。IMessageBus中定义了向运行xUnit.Net测试用的Runner发送消息的接口方法QueueMessage:

 namespace Xunit.Sdk
{
// Summary:
// Used by discovery, execution, and extensibility code to send messages to
// the runner.
public interface IMessageBus : IDisposable
{
// Summary:
// Queues a message to be sent to the runner.
//
// Parameters:
// message:
// The message to be sent to the runner
//
// Returns:
// Returns true if discovery/execution should continue; false, otherwise. The
// return value may be safely ignored by components which are not directly responsible
// for discovery or execution, and this is intended to communicate to those
// sub-systems that that they should short circuit and stop their work as quickly
// as is reasonable.
bool QueueMessage(IMessageSinkMessage message);
}
}

  这里我们自定义的消息总线如下:

     public class DelayedMessageBus : IMessageBus
{
private readonly IMessageBus innerBus;
private readonly List<IMessageSinkMessage> messages = new List<IMessageSinkMessage>(); public DelayedMessageBus(IMessageBus innerBus)
{
this.innerBus = innerBus;
} public bool QueueMessage(IMessageSinkMessage message)
{
lock (messages)
messages.Add(message); // No way to ask the inner bus if they want to cancel without sending them the message, so
// we just go ahead and continue always.
return true;
} public void Dispose()
{
foreach (var message in messages)
innerBus.QueueMessage(message);
}
}

  这里只是简单的对队列中的消息进行了暂存,实际的应用中应该会更复杂。

  到此为止,我们已经完成了自定义属性标签的所有的工作。现在系统中已经有了一个叫做RetryTestCase的标签,你可以用它来标记某个测试方法并且提供一个MaxRetries的值。当你运行测试用例的时候他会按照你设置的参数多次运行被标记的测试方法,直到有一次成功或者运行次数超过了最大限制(如果用户代码设置的值小于3的情况下,这里默认会运行3次,Demo而已哈~~~),回顾一下本文开始的那个测试用例:

         public class RetryFactSample : IClassFixture<CounterFixture>
{
private readonly CounterFixture counter; public RetryFactSample(CounterFixture counter)
{
this.counter = counter;
counter.RunCount++;
} [RetryFact(MaxRetries = )]
public void IWillPassTheSecondTime()
{
Assert.Equal(, counter.RunCount);
}
}

  每运行一次RunCount会被加1,直到counter.RunCount == 5,运行结构如下:

aaarticlea/png;base64,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" alt="" />

总结:

  这一篇文章应该算是xUnit.Net中比较难理解的一部分。当然也算得上是个里程碑了,搞明白这一部分就相当于了解了一些xUnit.Net的设计和运行原理。也只有这样才有可能真的“玩转”xUnit.Net。否则,仅仅是一个使用者而已,最后回顾一下本文:

  • 概述
  • 让xUnit.Net识别你的测试Attribute
  • 定义运行策略:XunitTestCase
  • 与Runner交流:消息总线 - IMessageBus

小北De系列文章:

  《[小北De编程手记] : Selenium For C# 教程

  《[小北De编程手记]:C# 进化史》(未完成)

  《[小北De编程手记]:玩转 xUnit.Net》(未完成)

Demo地址:https://github.com/DemoCnblogs/xUnit.Net

如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
作者:小北@North
来源:http://www.cnblogs.com/NorthAlan
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
上一篇:DEDECMS中,获取面包屑导航


下一篇:理解Oracle TM和TX锁