无法通过xcodebuild从命令行执行testing

我正在尝试使用iOStesting用例的命令行构build和运行testing用例。 我已经给了以下命令:

xcodebuild -target AppEngineTests -configuration Debug -sdk iphonesimulator TEST_AFTER_BUILD=YES clean build 

它构build的应用程序,但testing用例不运行。

有人可以帮忙吗? 谢谢

我发现name属性需要更多的规范。

 xcodebuild test -workspace #{WORKSPACE_FILE} -scheme #{TEST_SCHEME} -destination 'platform=iOS Simulator,name=iPhone Retina (4-inch),OS=7.0' 

终于为我工作了。 iPhone是有限的和/或不可预知的。

作为另一张海报(找不到引文),“平台”松散地对应于目标列表中的分隔符,“name”对应于子select,并且OS参数对应于人字形的右侧相同的列表减去“iOS”。

这个文档很有启发性,听起来很有权威性,但实际上并不完整或不正确。

惊讶这是多么麻烦。 一旦正确的调用达到了,它的工作效果如何。

你还没有说你正在使用什么版本的Xcode,但是因为你用“xctest”标记了你的问题,所以假设你有Xcode 5或更高版本似乎是安全的。

Xcode 5通过test动词显着增强了在xcodebuild运行testing的支持。 当使用这个动词时,你需要指定一个scheme目的地而不是目标,因为它的行为就像Xcode IDE中的Test命令一样。

例如,假设您的项目或名为AppEngine的工作空间中有一个共享scheme,其testingscheme操作已正确configuration,那么您可以只使用

 xcodebuild test -scheme AppEngine -destination 'platform=iOS Simulator,name=iPad' 

运行configuration为运行最新iOS的iPad的iOS模拟器中为AppEngineschemeconfiguration的所有unit testing。 有关目标说明符语法的更多细节在xcodebuild手册页中 。 (您甚至可以使用它在附加的iOS设备上运行testing!)

以前用于运行unit testing的脚本已经过调整,以便将用户引用到test动词,因为通过这些改进,每个人都应该使用这些脚本。

应该指出的是,您可以使用instruments -s devices来获取所有可用设备的列表。

您还应该传递string作为 – -destination 'platform=iOS Simulator,id=ID_OF_THE_SIMULATOR'由于某种原因,它不喜欢键=值对之间的空格。

我有一个Xcode构build类似的问题。 在我的情况下,问题是我没有任何与我的计划相关的testing。

请在这里看到我的答案(附图)

在这里寻找类似的xcodebuild错误的解决scheme。 就像附录一样,你也可以传递一个key = val到-destination,例如-destination 'platform=iOS' ,xcodebuild会告诉你所有可用的scheme。

 λ ~/Development/app-ios/ task/JIOS-400-Earl-Grey-Spike* xcodebuild -workspace app.xcworkspace -scheme app -destination 'platform=iOS' -derivedDataPath "build" build-for-testing User defaults from command line: IDEDerivedDataPathOverride = /Users/schoudhary/Development/app-ios/build xcodebuild: error: Unable to find a destination matching the provided destination specifier: { platform:iOS } Missing required device specifier option. The device type “Generic iOS Device” requires that either “name” or “id” be specified. Please supply either “name” or “id”. Available destinations for the "App" scheme: { platform:iOS Simulator, id:D248DB01-A852-4360-A9C0-2D71AFE478D7, OS:10.3, name:iPad Air } { platform:iOS Simulator, id:CE87AF5A-141C-43DA-AE61-AF53593F37F7, OS:10.3, name:iPad Air 2 } { platform:iOS Simulator, id:E93B43E4-D24E-4927-B9EE-0375E15DCBD5, OS:10.3, name:iPad Pro (9.7 inch) } { platform:iOS Simulator, id:6D71DB17-0FE2-4D5E-BEE6-CC696445BA11, OS:10.3, name:iPad Pro (12.9 inch) } { platform:iOS Simulator, id:F7E37EF4-5E72-438A-A286-216C20158B47, OS:10.3, name:iPhone 5 } { platform:iOS Simulator, id:24653844-AE99-4B5B-8332-9FFD2208172F, OS:10.3, name:iPhone 5s } { platform:iOS Simulator, id:FD2089A4-BF3F-4F98-8E33-B7EFDCFE5B4D, OS:10.3, name:iPhone 6 } { platform:iOS Simulator, id:6EF0DFBD-E99E-4EB3-9C51-6E749F41B6E7, OS:10.3, name:iPhone 6 Plus } { platform:iOS Simulator, id:846E631C-6285-4B91-9BA6-1AB6E66C88DB, OS:10.3, name:iPhone 6s } { platform:iOS Simulator, id:A6943ADC-F6EF-42F6-9958-D966DFC419FC, OS:10.3, name:iPhone 6s Plus } { platform:iOS Simulator, id:B41ABED0-7554-438A-97AC-F34943ED4D79, OS:10.3, name:iPhone 7 } { platform:iOS Simulator, id:20F1582C-0D19-4F42-9DAD-43138FB923B9, OS:10.3, name:iPhone 7 Plus } { platform:iOS Simulator, id:683BB5CA-E0A8-4CE4-B0DD-AED4C4295B90, OS:10.3, name:iPhone SE } Ineligible destinations for the "App" scheme: { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Generic iOS Device } { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Generic iOS Simulator Device } 

只是另一个有用的方式来获得正确的目的地。