【问题标题】:How to run a fresh install of the application every time unit tests are run?每次运行单元测试时如何运行应用程序的全新安装?
【发布时间】:2014-11-28 21:20:47
【问题描述】:

我已经为我的应用程序设置了一些XCTest 单元测试,并希望每次运行测试时都能在全新安装的应用程序中运行。目前,当我运行后续测试时,它会在之前运行的同一个应用程序中运行测试,之前的测试已经改变了很多状态信息。

有没有办法表明当您运行单元测试时它应该在您的应用程序的新版本上运行测试?

【问题讨论】:

  • @SteveRosenberg Clean 只是清理您的“构建”目录,它不会卸载应用程序。

标签: ios xcode unit-testing xctest


【解决方案1】:

也许这可行,但仅适用于模拟器。

Product > Scheme > Edit Scheme...

xcrun simctl 是用于控制 iOS 模拟器的命令行实用程序。 这会在运行测试之前从 booted 模拟器中卸载 com.yourcompany.AppName 应用程序。

我不知道如何在真实设备上这样做:(

【讨论】:

  • 也许可以以同样的方式使用ios-deploy
  • 使用这种中间测试的方法是在 Jenkins 中的 yml 文件或 shell 中运行它
  • 如果我只想卸载 ui 测试,我该怎么做?我不想在单元测试中。
  • @LaserHawk 你能详细说明一下吗?也许在单独的答案中?
【解决方案2】:

除了@rintaro 的回答,如果您将“Provide build settings from” 设置为您的应用程序,您可以添加一个通用命令,当您的bundle id 更改时该命令将继续工作:

xcrun simctl uninstall booted ${PRODUCT_BUNDLE_IDENTIFIER}

【讨论】:

  • 为什么投反对票?你试过什么?是什么让你如此确定这行不通?
猜你喜欢
  • 1970-01-01
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 2014-11-16
  • 1970-01-01
  • 2016-03-23
相关资源
最近更新 更多