我正在使用 OCUnit 和 Xcode 4.2 将单元测试添加到现有的 iOS 项目中。我已经成功添加了一个新的构建目标(按照此处的说明: http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/ )并设置了一些简单的示例测试,只是为了检查我是否可以运行测试以及它们是否按预期工作。
我的问题是关于添加更多测试文件以及如何组织它们。现有的代码库非常广泛,包含数百个类,我们迟早需要添加测试。显然,将所有测试放入自动生成的“UnitTests.m”文件中将是疯狂的。我发现我可以使用“Objective-C 测试用例类”模板添加更多文件,但我不清楚这与我添加测试目标时 XCode 生成的总体“UnitTest.m”有何关系。
XCode 是否只是查找测试目标的所有测试文件并运行所有测试?如果是这样,那么为我正在测试的每个类生成一个新的测试文件是有意义的,并且主“UnitTests.m”文件中没有任何内容。如果是这种情况,我可以安全地删除该文件吗,因为它不包含任何测试?或者是否需要保留它以便在其他文件中运行其他测试?
最佳答案
Xcode 最初设置为对属于单元测试目标成员的文件运行所有单元测试。在您的情况下,您应该为您正在测试的每个类创建一个新的测试文件。创建新文件时,请确保将该文件添加到单元测试目标,而不是应用程序目标。 Xcode 最初将该文件添加到应用程序目标中。
您可以删除UnitTest.m文件。您创建的每个单元测试文件都包含足够的信息来运行测试。您还可以使用方案编辑器来控制 Xcode 如何运行测试。
Xcode 5 更新
Xcode 5 添加了一个测试导航器,可让您运行单个测试、运行测试类的所有测试或运行所有测试。测试导航器减少了使用方案编辑器来控制 Xcode 如何运行测试的需要。
关于ios - 在 XCode 中组织 iOS OCUnit 测试文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324930/