在命令行上设置PRODUCT_NAME会导致测试失败

时间:2014-09-16 15:03:38

标签: ios unit-testing continuous-integration xcodebuild xctest

在我的主要目标中,我有一个用户定义的构建设置CI_PRODUCT_NAME。它被设置为我的CI构建的一部分。这用于通过将产品名称构建设置设置为$ {CI_PRODUCT_NAME}

来设置目标输出的产品名称

这一切都很好,其他构建设置我已按预期定义了所有工作。问题是测试不能使用以下命令运行:

xcodebuild -workspace workspace.xcworkspace -scheme scheme -configuration Debug CI_PRODUCT_NAME=test_product clean test

起初我收到链接器错误,告诉我找不到我的主要目标,这是由于BUNDLE_LOADER值现在不匹配,所以我通过在CI_PRODUCT_NAME的测试目标上添加用户定义的构建设置并进行设置来更新它BUNDLE_LOADER值为:

$(BUILT_PRODUCTS_DIR)/${CI_PRODUCT_NAME}.app/${CI_PRODUCT_NAME}

原始链接器错误已经消失,但现在我收到了:

The test bundle at DerivedData/Scheme-edjkzeakmzewtyckdurvlrjvvxrs/Build/Products/Debug-iphonesimulator/SchemeTests.xctest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework or library had an incorrect install path at link time.

我尝试了一些事情,似乎我在xcode项目中的主目标上设置了CI_PRODUCT_NAME的值,以匹配测试工作的命令行中传递的值。当xcode中的值匹配并且它们通过xcode运行时,测试也会起作用。

似乎在命令行上传递的CI_PRODUCT_NAME值在其中一个构建阶段被忽略,但在收到上述错误之前没有任何迹象表明错误

0 个答案:

没有答案