.NET测试框架测评
2019年8月28日最近用了xUnit.net,结构简洁。用[Fact]
标记无参测试方法,用[Theory]
标记有参测试方法并用[InlineData]
提供参数。而且,xUnit.net可以使用静态类作为测试类。这使得编写简洁的测试代码成为可能。
美中不足是xUnit的断言除了Assert.True()
、Assert.False()
以外,都不接受自定义错误消息。当在持续集成服务器上出错,且本地无法重现时,根本无法知晓到底具体的出错情况。
xUnit.net团队坚持认为不应添加自定义消息。[1]
文档不丰富。
MS Test (v1)
MS Test和NUnit一样,都要用特性标记测试类和测试方法,但测试类必须是非静态类[2]。广泛支持自定义错误消息。
MS Test早期是Visual Studio里的一个组件,文档里称之为Visal Studio单元测试,这把单元测试的基本概念和单元测试框架混淆,导致现在搜索MS Test很不方便。
MS Test v2
MS Test v2是对MS Test (v1)对.NET Core的支持,并包含其他修改,发布于2016年。[3]
xunit | MSTestv2 | |
---|---|---|
内联数据测试之嵌套数组 |
|
|
输出消息 |
添加以ITestOutputHelper为参数的构造函数
|
直接使用System.Console |
单独执行一个内联测试 | 可以 | 不可以 |
原文发表于2018年6月5日。
参考资料
- . Add Assert.Equal(expected, actual, message) overload. . 2015-03-10 [2018-06-05].↑
- Tina-Shi. Test explorer doesn't show static test methods. . 2015-07-15 [2018-06-06].↑
- Pratap. Announcing MSTest Framework support for .NET Core RC2 / ASP.NET Core RC2. . 2016-05-30 [2019-08-28].↑