我正在尝试使用Jenkins运行我的Xcode单元测试.我可以使用此命令从我的构建服务器上的终端运行它们,但没有任何问题:
xcodebuild test -scheme MyProject -destination OS=7.0,name="iPad"
CONFIGURATION_BUILD_DIR=/Users/dev/Jenkins/Home/workspace/MyProject/build
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将该命令添加到我的构建脚本(buildscript.sh)文件时,它会在运行单元测试时挂起.我还尝试向Jenkins添加一个新的Xcode任务并运行这些参数:
XcodeSchema文件:MyProject
配置:调试
自定义xcode构建参数:test -destination OS = 7.0,name ="iPad"CONFIGURATION_BUILD_DIR =/Users/dev/Jenkins/Home/workspace/MyProject/build
它挂在debug-iphone模拟器文件夹中的构建文件中.
** BUILD SUCCEEDED **
setenv SYSTEM_DEVELOPER_DIR /Applications/Xcode.app/Contents/Developer
.
.
.
/bin/sh -c /Users/dev/Library/Developer/Xcode/DerivedData/MyProject
-ggdmamhydtxxzadkbjuusdjmholn/Build/Intermediates/MyProject.build/Debug
-iphonesimulator/MyProjectApplicationTests.build
Run Code Online (Sandbox Code Playgroud)
我查看了构建文件,并正确设置了它正在使用的环境变量.
MyProjectApplicationTest.build
#!/bin/sh
# Run the unit tests in this test bundle.
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
# "${SYSTEM_DEVELOPER_DIR}/Tools/RunPlatformUnitTests"
# "${PROJECT_DIR}/XcodeScripts/RunPlatformUnitTests
Run Code Online (Sandbox Code Playgroud)
RunUnitTests文件存在于该目录中.
我不知道Jenkins是否在运行模拟器时遇到问题.我昨天大部分时间都花在这上面.如果有人对这个问题有什么想法,请告诉我.
我正在研究一些 WKWebView 解析例程。我试图通过检查页面的 document.title 来验证我是否已正确导航到该页面。我编写了一个函数来完成这项工作,但我似乎不知道如何从函数返回 HTML 数据或在函数中进行评估并返回 BOOL。我知道我正在此处进行异步调用,但不确定如何等待该调用结束并从我的函数调用反馈响应。
这是我的功能:
func checkTitle (forWebView webView: WKWebView, title: String) -> String{
webView.evaluateJavaScript("document.title", completionHandler: { (innerHTML, error ) in
let titleString = innerHTML as? String
return (titleString)
})
Run Code Online (Sandbox Code Playgroud)
这会引发编译器错误。我尝试在调用外部声明变量,然后分配并返回它,但它尝试在异步调用完成之前执行该变量。