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;
	}
}

最终生成的测试文档中,该测试用例的页面显示如下图的效果:

不早了,睡觉~~ 继续欢迎大家一起讨论我的构想!

posted on 2005-10-12 00:18  破宝  阅读(168)  评论(0编辑  收藏  举报

导航