我正在尝试评论我向客户公开的 API (.Net)。我通过使用 XML 注释和通过 SandCastle 提取来做到这一点。
这一切都很好而且很花哨,但是我对 API 进行了单元测试,并且认为这些代码可以很好地放在示例标签中。
那么有人知道提取单元测试代码并放入示例标签的好方法吗?或者有人有更好的想法吗?
当然,我使用 API 重新分发单元测试,但最好将它们包含在文档中。
我正在尝试评论我向客户公开的 API (.Net)。我通过使用 XML 注释和通过 SandCastle 提取来做到这一点。
这一切都很好而且很花哨,但是我对 API 进行了单元测试,并且认为这些代码可以很好地放在示例标签中。
那么有人知道提取单元测试代码并放入示例标签的好方法吗?或者有人有更好的想法吗?
当然,我使用 API 重新分发单元测试,但最好将它们包含在文档中。
我正在使用 NUnit 和 Sandcastle 帮助文件生成器。请查看有关代码块组件的 Sandcastle 帮助文件生成器文档。
这是我如何在示例标记中放置单元测试代码的示例:
/// <summary>
/// Returns a string representation of an object.
/// </summary>
/// <returns>Comma separated string.</returns>
/// <example>
/// <code source="UnitM.CentrallProcessingLib.Tests\Data\CSVDataRowTests.cs" region="ToString_a" />
/// </example>
public override string ToString()
{
return this.Data;
}
这是一个引用的单元测试 (CSVDataRowTests.cs)(它应该在 #region 部分内):
#region ToString_a
[Test]
public void ToString_a()
{
CSVDataRow res = new CSVDataRow
{
Data = "1;2;3"
};
Assert.AreEqual(res.ToString(), res.Data);
}
#endregion
最好的祝福。
我看到 Jon Skeet 给出了一个答案,这需要一些工作: 自动单元测试示例代码 有人去实现这个吗?有没有更简单的方法?这个问题是关于从 cs 文件中获取方法体: Get a method's contents from a cs file
我做了一个项目来做到这一点: http ://code.google.com/p/addsourcetodocumentation/