NUnitDoc 继续构想(2)
继上一篇文章谈到 NDoc for NUnit 的初步构想之后,继续构想......
首先,给这个构想中的工具暂定个名字叫 NUnitDoc。这个工具的预定目标是,以 NDoc 的设计和部分代码为基础,综合
(1) 包含 NUnit 测试用例的程序集(*.dll/*.exe)文件;
(2) 开启 C# 编译器 /doc 开关,输出的相应 XML 文档文件(*.xml);
(3) NUnit 执行的结果 XML 文件(*.xml)
这三种文件中的信息,合并并制作出漂亮的测试文档。(1) 和 (2) 同样是 NDoc 所需要的,(3) 是 NUnit 所生成的。
需要感谢 CavingDeep 网友和我探讨这个构想。他给我介绍了几款可以根据 NUnit 生成 HTML 报表的工具,但我看了一些它们的输出 Sample 之后,认为它们不是我想要的东西。它们都是只利用了 NUnit 输出的结果 XML 文件,因此制作的 HTML 报表中,只包含关于测试结果的信息,并不包括关于测试用例的文档信息。
下面,我来具体描述一下我的构想:首先,在 TestFixture 标记的类的相关方法(标记有 Test 的方法)的代码上方,为它们编写一些注释信息(就和为 NDoc 编写注释类似的方法),比如下面的代码:
[TestFixture] public class TextUtilTest { private TextUtil util = null; /// <summary>用例开始前,初始化 <b>TextUtil</b> 的一个新实例。</summary> [Setup] public void Setup() { util = new TextUtil(); } /// <summary>此用例用于测试 <b>TextUtil</b> 类的 <b>IsValidEmailAddress</b> 成员。</summary> /// <asserts> /// <assert>输入一个合法的 Email 地址,验证返回值是否为 <b>true</b>。</assert> /// <assert>输入不含有 '@' 符号的字符串,验证返回值是否为 false。</assert> /// <assert>输入以 '@' 符号开头的字符串,验证返回值是否为 false。</assert> /// <assert>输入以 '@' 符号结尾的字符串,验证返回值是否为 false。 </assert> /// <assert>输入一个只含有 '@' 符号的字符串,验证返回值是否为 false。</assert> /// <assert>输入一个 '@' 符号前面包含空格的字符串,验证返回值是否为 false。</assert> /// <assert>输入一个 '@' 符号前面包含空格的字符串,验证返回值是否为 false。</assert> /// <assert>输入一个 '@' 符号后面包含空格的字符串,验证返回值是否为 false。 </assert> /// <asserts> [Test] public void TestIsValidEmailAddress() { Assert.IsTrue(util.IsValidEmailAddress("xxx@xxx.com")); Assert.IsTrue(util.IsValidEmailAddress("xxxx.com")); Assert.IsTrue(util.IsValidEmailAddress("@xxx.com")); Assert.IsTrue(util.IsValidEmailAddress("xxx@")); Assert.IsTrue(util.IsValidEmailAddress("@")); Assert.IsTrue(util.IsValidEmailAddress("xx xx@xxx.com")); Assert.IsTrue(util.IsValidEmailAddress("xxx@xxx com")); } /// <summary>用例运行结束后,抛弃测试前创建的 <b>TextUtil</b> 实例。</summary> [TearDown] public void TearDown() { util = null; } }
最终生成的测试文档中,该测试用例的页面显示如下图的效果:
不早了,睡觉~~ 继续欢迎大家一起讨论我的构想!