3

在我的 Mac Cocoa 单元测试中,我想在测试过程中输出一些文件,并在测试完成时将其删除,但前提是没有失败。如何做到这一点(和/或这样做的最干净的方法是什么)?

4

2 回答 2

2

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

我想我会覆盖failWithException:类中的方法SenTestCase(你的测试运行的类继承自这个),并在调用super's 方法之前设置一个“保留输出文件”标志或其他东西。

以下是 SenTestCase.h 关于该方法的说明:

/*"Failing a test, used by all macros"*/
- (void) failWithException:(NSException *) anException;

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

于 2012-01-27T21:14:47.063 回答
0

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

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

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

于 2012-01-27T22:07:15.750 回答