自动化詹金斯的弗兰克



我正在尝试使用弗兰克(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

从那以后,我能够在没有任何问题的情况下运行黄瓜。希望这会有所帮助。

每次您的应用程序崩溃时,都会发生这种情况。当应用程序崩溃时,弗兰克停止接收事件,黄瓜以您看到的错误结束。

有两个可能的原因:

  1. 您的应用中有一个错误,使应用程序崩溃
  2. 弗兰克有一个使您的应用程序崩溃的错误

您应该检查崩溃/申请日志以查看确切原因。

我了解到这对于詹金斯作业捕获应用程序日志非常有帮助,例如

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

(仅当黄瓜以错误结束时才抓住日志)

相关内容

  • 没有找到相关文章

最新更新