2015-10-02 51 views
6

代码覆盖率通常用于Xcode中的测试。我想用它来手动执行的应用程序。我可以使用第三方工具吗?Xcode不带测试的代码覆盖率(手动运行)

例如:我在设备上构建并启动应用程序,对其执行一些操作,然后查看代码覆盖率结果。

+0

所以你基本上想看看在正常运行期间哪些代码部分达到了!请注意,这些信息可能是不值得的,因为你永远不能确定已经使用了所有可能的操作,并且遇到了每种潜在的可能性......! – luk2302

+0

@ luk2302是的,正好。覆盖结果对于检查执行的手动测试是否涵盖了所有场景很有用。因此,例如,在手动运行后,我们会看到哪些代码片段被覆盖,哪些片段应该进行测试以确保它们正常工作。让我再说一次,我的应用程序是特定于内容的,所以我无法记录UI操作。 – brigadir

回答

0

代码覆盖率将记录您的代码的哪些部分运行。但是你可以建立一些UITests,如你所说的那样执行一些动作。 UI可以记录UI测试,以重复您在模拟器上执行的操作,然后当您运行测试时,它将重复您所做的操作。这个覆盖范围将显示哪些代码在UITests期间激发的部分。

查找在Xcode 7. UITesting一些信息没有从wwdc15在开发者会议的一个良好的演示

https://developer.apple.com/videos/wwdc/2015/?id=406

+0

谢谢,但它不完全是我想要的。我的应用程序是特定于内容的,因此我无法记录UI操作。通常,代码覆盖可与任何代码执行一起使用,包括手动运行。看起来在Xcode中,它们仅限于测试使用。我正在寻找可与手动运行结合使用的方法:用户与应用程序交互,然后我们看到在此运行过程中执行了哪些代码。 – brigadir

0

也许你可能已经想通了,但是之前是可能的Xcode7。我们实现这一目标的方法是,在项目中将“仪器程序流程”和“生成测试覆盖率文件”标志设置为是,然后在应用程序内的某处添加“刷新”代码以编写覆盖率数据文件。这个“冲洗”部分实际上是编写覆盖数据文件,以供其他工具(如gcovr或lcov)稍后使用,以获取您的覆盖数据。一旦您与应用程序进行交互,无论是手动还是通过自动化测试,覆盖率数据都会被写入。

但是,使用Xcode7,看起来覆盖数据仅限于Xcode单元测试。我仍然试图弄清楚,是否有任何方法来收集覆盖率数据,手动与应用程序交互或通过自动化测试。

+0

我已阅读过有关'gcovr'的旧式方法,但在Xcode7中以新方式感兴趣。 Xcode7为XCTests生成覆盖率报告,但必须有一些工具集,但我找不到有用的信息。如果您发现有用的东西,请告诉我。 – brigadir

相关问题