运行 使用 xctool 的单个 KIWI 规范
Running a single KIWI spec with xctool
有没有人能够成功地将 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
对我有用,因为我已经在我的方案 (Edit scheme->Test->Arguments->Environment variables
) 的测试配置中设置了它。从 shell 设置变量不起作用,因为该变量仅适用于实际构建,而不适用于执行单元测试目标时。
但是有一个解决方法,通过修改方案的测试阶段并添加值为 $KW_SPEC
的 KW_SPEC
环境变量,这将在 运行ning xcodebuild 时扩展传递给 xcodebuild
命令的值(如我原来的回答)。此后,xcode 将优雅地使用传递的 KW_SPEC
变量,xctool 仍然将跳过的测试标记为失败问题。
原回答
如果你想 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
做不到的事情。
有没有人能够成功地将 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
对我有用,因为我已经在我的方案 (Edit scheme->Test->Arguments->Environment variables
) 的测试配置中设置了它。从 shell 设置变量不起作用,因为该变量仅适用于实际构建,而不适用于执行单元测试目标时。
但是有一个解决方法,通过修改方案的测试阶段并添加值为 $KW_SPEC
的 KW_SPEC
环境变量,这将在 运行ning xcodebuild 时扩展传递给 xcodebuild
命令的值(如我原来的回答)。此后,xcode 将优雅地使用传递的 KW_SPEC
变量,xctool 仍然将跳过的测试标记为失败问题。
原回答
如果你想 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
做不到的事情。