Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法通过xcodebuild从命令行执行测试_Ios_Xcodebuild_Xctest - Fatal编程技术网

Ios 无法通过xcodebuild从命令行执行测试

Ios 无法通过xcodebuild从命令行执行测试,ios,xcodebuild,xctest,Ios,Xcodebuild,Xctest,我正在尝试使用iOS测试用例的命令行来构建和运行测试用例。 我已发出以下命令: xcodebuild -target AppEngineTests -configuration Debug -sdk iphonesimulator TEST_AFTER_BUILD=YES clean build 它构建了应用程序,但测试用例没有运行 有人能帮忙吗? 谢谢您还没有说明您使用的是什么版本的Xcode,但由于您将问题标记为“Xtest”,因此可以放心地假设您使用的是Xcode 5或更高版本 Xcod

我正在尝试使用iOS测试用例的命令行来构建和运行测试用例。 我已发出以下命令:

xcodebuild -target AppEngineTests -configuration Debug -sdk iphonesimulator TEST_AFTER_BUILD=YES clean build
它构建了应用程序,但测试用例没有运行

有人能帮忙吗?
谢谢

您还没有说明您使用的是什么版本的Xcode,但由于您将问题标记为“Xtest”,因此可以放心地假设您使用的是Xcode 5或更高版本

Xcode 5通过
test
动词,显著增强了对在
Xcode构建
中运行测试的支持。使用此谓词时,需要指定一个方案和目标,而不是目标,因为它的行为与Xcode IDE中的测试命令类似

因此,例如,假设您的项目或工作区中有一个名为AppEngine的共享方案,该方案的测试方案操作已正确配置,那么您就可以使用

xcodebuild test -scheme AppEngine -destination 'platform=iOS Simulator,name=iPad'
在配置为运行最新iOS的iPad的iOS模拟器中运行为AppEngine方案配置的所有单元测试。有关目标说明符语法的更多详细信息,请参阅。(您甚至可以使用它在连接的iOS设备上运行测试!)


以前用于运行单元测试的脚本已被调整为将用户引用到
test
动词,因为通过这些改进,每个人都应该使用它。

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

xcodebuild test -workspace #{WORKSPACE_FILE} -scheme #{TEST_SCHEME} -destination 'platform=iOS Simulator,name=iPhone Retina (4-inch),OS=7.0'
这才是我最后的选择
iPhone
受到限制和/或不可预测

正如另一张海报(找不到引文)所提到的,“平台”松散地对应于目标列表中的分隔符,“名称”对应于子选择,
OS
参数对应于同一列表中V形符号的右侧减去“iOS”

不幸的是,这些文档很有启发性,乍看起来很权威,但实际上并不完整或正确


令人惊讶的是,这是多么麻烦。以及一旦实现了正确的调用,它的工作情况如何

我在Xcode构建中遇到了类似的问题。在我的案例中,问题是我没有任何与我的方案相关的测试


请参阅我的SO答案(带图表)

登陆此处,寻找类似xcodebuild错误的解决方案。作为附录,您还可以将一个key=val传递给-destination,例如
-destination'platform=iOS'
,xcodebuild将告诉您该方案的所有可选方案

λ ~/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 }

这是获得正确目的地的另一种有用方法。

应该注意的是,您可以使用
instruments-s devices
获取所有可用设备的列表


您还应该将字符串作为
-destination'platform=iOS Simulator,id=id\u OF_the_Simulator'
传递,因为出于某种原因,它不喜欢key=value对之间的空格。

在5上,目标语法给出:xcodebuild:error:选项“destination”至少需要一个形式为“key=value”的参数。你是说“平台=iOS模拟器,名称=iPad”吗?我发现这只是测试构建,而不是运行单元测试。使用xcodebuild测试和xcodebuild测试进行了尝试。。。不走运。有趣的是,手册页声称可以使用
最新版本
指定操作系统版本,但这似乎根本不起作用。您好,我使用了
xcodebuild test-scheme MyApp-destination'platform=iOS模拟器,name=iPhone'
getting Down error:xcodebuild:error:找不到与-destination标志匹配的参数的目标:找不到请求的设备,因为没有与请求匹配的可用设备。您收到了什么错误消息?感谢您的编辑,Guillaume,但我有多行,因为它需要滚动阅读否则!如何为真实设备构建它是'destination'参数@QadirHussain可用的值之一。为了防止有人查看此内容,现在,使用fastlane和测试操作
scan
multi\u scan
可以更轻松地管理测试。