只有在成功的情况下才能在SenTest中运行代码?

时间:2012-01-27 17:11:33

标签: objective-c macos cocoa unit-testing sentestingkit

在我的Mac Cocoa单元测试中,我想输出一些文件作为测试过程的一部分,并在测试完成后删除它们,但只有在没有失败时。如何做到这一点(和/或最简洁的方法)?

2 个答案:

答案 0 :(得分:2)

你的问题让我很好奇,所以我调查了一下!

我想我会覆盖类failWithException:中的SenTestCase方法(测试运行的类继承自此类),并在调用{之前设置“保存输出文件”标志或其他内容{1}}方法。

以下是SenTestCase.h关于该方法的内容:

super

因此,如果您只使用SenTest宏进行测试和/或失败(在您的情况下可能会这样),那么应该涵盖任何测试失败。

答案 1 :(得分:0)

我从来没有为此编写脚本,但似乎您可以自定义如何调用实际运行测试的脚本来执行此操作。在Xcode 4中,查看测试目标的Build Phases选项卡中的最后一步。我的包含:

# Run the unit tests in this test bundle.
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"

我没有仔细阅读这个脚本的内容或它在我的机器上插入的许多下标,但可能是他们调用了otest或其他一些测试工具可执行文件,测试结果将返回到该脚本。经过一段时间熟悉这些脚本后,您可能会找到一种根据测试结果有条件地删除输出文件的直接方法。