ios – 使用xctool运行单个KIWI规范

有没有人能够成功地将KW_SPEC变量传递给xctool.我正在尝试使用
https://github.com/kiwi-bdd/Kiwi/wiki/Kiwi-FAQ#q-how-do-i-run-a-single-spec-describecontextit运行单个KIWI规范.

我可以使用xctool成功运行所有测试,但它似乎没有获取KW_SPEC值.我已经在命令行的许多不同的地方尝试过但没有运气.

例如.:

xctool -destination 'platform=iOS Simulator,name=iPad Retina,OS=latest'
    -sdk iphonesimulator -workspace SampleProject.xcworkspace 
    -scheme SampleProject KW_SPEC=NewAssessmentTests.m:12 test 
    -only SampleProject_Acceptance_Tests

使用Kiwi v2.3.1和xctool 0.2.3

干杯,

最佳答案 2015年11月3日更新

@OhadSchneider的评论让我意识到KW_SPEC对我有用,因为我已经在我的方案的测试配置中设置了它(编辑方案 – >测试 – >参数 – >环境变量).从shell设置变量不起作用,因为该变量仅适用于实际构建,而不是在执行单元测试目标时.
但是有一个解决方法,通过修改方案的测试阶段并添加值为$KW_SPEC的KW_SPEC环境变量,这将在运行xcodebuild时扩展到传递给xcodebuild命令的值(如我原来的答案).在此之后,xcode将优雅地使用传递的KW_SPEC变量,xctool仍然将跳过的teste标记为失败问题.
《ios – 使用xctool运行单个KIWI规范》

原始答案

如果您希望KW_SPEC作为xctool(或任何* nix工具)的环境变量,那么您必须将它放在命令之前,否则它将被视为构建设置:

KW_SPEC=NewAssessmentTests.m:12 xctool 
    -destination 'platform=iOS Simulator,name=iPad Retina,OS=latest'
    -sdk iphonesimulator -workspace SampleProject.xcworkspace 
    -scheme SampleProject test 
    -only SampleProject_Acceptance_Tests

然而,这将导致另一个问题:xctool将报告错误的未运行的测试,并将测试报告为失败,即使没有测试失败. xcodebuild没有这个问题,因为它要么不进行单元测试发现,要么忽略没有运行的测试,这是xctool无法做到的事情.

点赞