我正在尝试使用弗兰克(Frank)从詹金斯(Jenkins)自动进行测试。
这是我收到的错误消息。
(Frank::Cucumber::FrankNetworkError)
./step_definitions/test_steps.rb:30:in `/^I navigate to button V303244der$/'
test.feature:41:in `When I navigate to <link>'
| Radar | Norrland |
*********************************************
Oh dear. Your app fell over and can't get up.
*********************************************
Jenkins还从Git中检查了代码,此外,我还添加了一个shell命令,如下所示。
cd ios #<--this is so that I go to the root folder, the one with the .xcodeproj project
frank setup
frank build
frank launch
mv features/*.feature Frank/features/. #<--- this is the testscript
mv features/step_definitions/*.rb Frank/features/step_definitions/. #<--here it is moved to the newly created frank/features & Frank/features/step_definitions folder
cd Frank/features
cucumber test.feature
一切都按应有的方式构建,如果我去服务器
并手动从我的shell命令中键入最后一行,将执行测试。
最好的问候
我个人在Mac上运行Jenkins遇到了许多问题。特别是如果您使用Jenskins Mac Image Installer,Jenkins总是在安装过程中创建的" Jenkins"用户下运行。
这让我有很多头痛,从内部作业或启动iOS模拟器开始运行黄瓜。
我终于学会了在我自己的用户下启动詹金斯:" nohup java -jar/applications/jenkins/jenkins.war -httpport = 8080
从那以后,我能够在没有任何问题的情况下运行黄瓜。希望这会有所帮助。
每次您的应用程序崩溃时,都会发生这种情况。当应用程序崩溃时,弗兰克停止接收事件,黄瓜以您看到的错误结束。
有两个可能的原因:
- 您的应用中有一个错误,使应用程序崩溃
- 弗兰克有一个使您的应用程序崩溃的错误
您应该检查崩溃/申请日志以查看确切原因。
我了解到这对于詹金斯作业捕获应用程序日志非常有帮助,例如
function grab_log_and_fail {
APP_NAME = "MyApplication"
# get the PID of the last process with the given name
PID=$( cat /var/log/system.log | grep "$APP_NAME[" | tail -n 1 | sed -e "s/^.*$APP_NAME [([^]*)].*/1/g" )
# grab all the messages from the process with the PID
cat /var/log/system.log | grep "$APP_NAME[$PID]" >"$WORKSPACE/$APP_NAME.log"
#fail the job
exit 1
}
您可以使用
调用它cucumber test.feature || grab_log_and_fail
(仅当黄瓜以错误结束时才抓住日志)