如何根据当前方案使测试主机/软件包加载器动态化?眼下值设置为:iOS单元测试的动态“测试主机”还是bundle loader?
$(BUILT_PRODUCTS_DIR)/MyApp1.app/MyApp1
问题是我在工作区4级的应用程序,我想用相同的单元测试工具为所有的人。如何根据当前方案动态更改“MyApp1”部分?它是基于构建过程中的环境变量吗?我试着将它设置为像$(PROJECT_NAME)这样的东西,但那些似乎得到了测试套件的名称。
如何根据当前方案使测试主机/软件包加载器动态化?眼下值设置为:iOS单元测试的动态“测试主机”还是bundle loader?
$(BUILT_PRODUCTS_DIR)/MyApp1.app/MyApp1
问题是我在工作区4级的应用程序,我想用相同的单元测试工具为所有的人。如何根据当前方案动态更改“MyApp1”部分?它是基于构建过程中的环境变量吗?我试着将它设置为像$(PROJECT_NAME)这样的东西,但那些似乎得到了测试套件的名称。
要做到这一点,你需要在构建设置中有一个变量 - 这看起来很简单,但事实并非如此。如果您通过应用程序或测试方案中的前置或后置步骤设置环境变量,则看起来好像不会在此处显示。毕竟构建设置发生在构建之前。预处理器宏也是如此,尽管使用xcodebuild并传入自定义选项可能会起作用。
我知道这样做的唯一方法是使用xcconfig文件。创建一个并将其应用于(至少)您的测试目标。内容应包括这样的事情: THINGUNDERTEST=FooBar
现在,在您的项目设置,羯羊在xcconfig或项目文件,设置BUNDLER_LOADER到: $(BUILT_PRODUCTS_DIR)/$(THINGUNDERTEST).app/$(THINGUNDERTEST)
,将工作。现在,您可以通过各种方式更改THINGUNDERTEST,并至少获得一些动态行为。这可能适用于您,也可能不适用,具体取决于您的需求 - 但它可能只是一个起点。
就我而言,我的测试目标需要一个主机应用程序。所以'BUNDLER_LOADER'从'TEST_HOST'中读取值。因此,我将'$(BUILT_PRODUCTS_DIR)/ $(THINGUNDERTEST).app/$(THINGUNDERTEST)'设置为'TEST_HOST'。 – Hlung
这确实有效。在我的情况下,我将'THINGUNDERTEST''的动态解析值作为xctool命令行参数发送给应用程序。同样应该适用于xcodebuild。例如。 '''xcodebuild
我面临同样的问题。我有几个目标,我想要执行相同的目标测试。很明显,太多的Xcode处理。我的解决方案是添加一个脚本,以改变XCodeProject然后瞄准正确的应用程序。 –