【发布时间】:2011-02-09 05:55:04
【问题描述】:
我的测试项目包含一组输入数据文件,这些文件被输入到一个遗留的第三方软件中。由于这个软件的输入数据文件很难构建(不是故意可以做的),我不打算添加新的输入数据文件。
每个输入数据文件都将受到一组“测试函数”的约束。一些测试函数可以独立调用。其他测试函数代表顺序操作的各个阶段 - 如果前面的阶段失败,则不需要执行后续阶段。
我已经尝试过 NUnit 参数化测试用例(TestCaseAttribute 和 TestCaseSourceAttribute),将数据文件列表作为测试用例传入。我通常对选择输入数据进行测试的能力感到满意。
但是,我想看看是否可以自定义其 GUI 的树形结构,使“测试函数”成为“输入数据”的子项。例如:
- 文件 #1
- CheckFileTypeTest
- GetFileTopLevelStructureTest
- 完成过程测试
- StageOneTest
- StageTwoTest
- 第三阶段测试
- 文件 #2
- CheckFileTypeTest
- GetFileTopLevelStructureTest
- 完成过程测试
- StageOneTest
- StageTwoTest
- 第三阶段测试
这对于识别在处理特定输入文件期间失败的阶段很有用。
是否有任何提示和技巧可以启用新的树形布局?我是否需要自定义 NUnit 才能获得此布局?
已编辑:请参阅问题Term for unit testing that separates test logic from test result data,了解分离测试数据和测试代码的概念。在我的情况下,分离是出于实际考虑,而不是出于意识形态原因。我的测试数据文件的来源是“在野外”。
数据驱动测试的其他轶事用途:
【问题讨论】:
-
很确定 NUnit 的 GUI 根本不提供任何自定义(或者充其量是非常有限的)。你必须自己写。
-
在测试中 GUI 是你的敌人,而不是朋友 :) 然而,你可以做的是在测试完成后转换 XML 输出,然后将其转换为格式良好的 HTML。我以前这样做是为了隐藏一些测试,更改它们的名称等。顺便说一句,gallio.org + MbUnit 比 NUnit 好得多,我发誓!
-
@rwong 我将把它迁移到 StackOverflow。这个问题对 Programmers.SE 来说太客观了,你可能会有更好的机会在那里得到答案。
标签: nunit