Ios 如何在每次运行单元测试时运行应用程序的新安装?

Ios 如何在每次运行单元测试时运行应用程序的新安装?,ios,xcode,unit-testing,xctest,Ios,Xcode,Unit Testing,Xctest,我已经为我的应用程序设置了一些xtest单元测试,并希望每次运行测试时都能在全新的应用程序安装中运行。目前,当我运行后续测试时,它在之前运行的同一个应用程序中运行测试,该应用程序的许多状态信息已经被以前的测试更改 是否有一种方法表明,当您运行单元测试时,它应该在您的应用程序的新版本上运行测试?这可能有效,但仅适用于模拟器 在产品方案编辑方案… xcrun simctl是控制iOS模拟器的命令行实用程序。 这将在运行测试之前,从启动的模拟器中卸载com.yourcompany.AppName应用

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


是否有一种方法表明,当您运行单元测试时,它应该在您的应用程序的新版本上运行测试?

这可能有效,但仅适用于模拟器

产品
方案
编辑方案…

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


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

除了@rintaro的答案,如果您将“提供构建设置自”设置到您的应用程序中,您可以添加一个通用命令,当您的捆绑包id更改时,该命令将继续工作:

xcrun simctl uninstall booted ${PRODUCT_BUNDLE_IDENTIFIER}

@SteveRosenberg Clean只清理你的“build”目录,它不卸载应用程序。也许可以用同样的方法使用
ios deploy
?在测试之间使用它的方法是在Jenkins内的yml文件或shell中运行它。如果我只想卸载ui测试,我怎么能这样做?我不想在单元测试中使用。@LaserHawk你能告诉elabora吗te more?也许在另一个答案中?为什么投反对票?你试过什么?是什么让你如此确定这不起作用?