4

有没有人能够成功地将 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

干杯,莫

4

1 回答 1

2

2015 年 11 月 3 日更新

@OhadSchneider 的评论让我意识到这KW_SPEC对我有用,因为我已经在我的方案 ( Edit scheme->Test->Arguments->Environment variables) 的测试配置中设置了它。从 shell 设置变量不起作用,因为该变量仅适用于实际构建,而不适用于执行单元测试目标时。
但是有一个解决方法,通过修改方案的测试阶段并添加一个KW_SPEC带有 value 的环境变量$KW_SPEC,这将在运行 xcodebuild 时扩展为传递给xcodebuild命令的值(如我的原始答案中所示)。此后,xcode 将优雅地使用传递的KW_SPEC变量,xctool 仍然将跳过的 teste 标记为失败问题。 KW_SPEC 方案设置

原始答案

如果您希望 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失败的事情。

于 2015-10-27T21:56:29.613 回答