7

私は竹でいくつかのjbehave(自動化された)テストを実行することになっています。テストが実行されたら、bamboo が同じことを理解できるように、junit 互換の xml ファイルをいくつか生成します。すべての jbehave テストはスクリプトの一部として実行されます。これは、jbehave テストを別の表示画面で実行する必要があるためです (これらは自動化されたブラウザー テストであることを思い出してください)。スクリプトの例は次のとおりです。

元:

export DISPLAY=:0 && xvfb-run --server-args="-screen 0, 1024x768x24" 
mvn clean integration-test -DskipTests -P integration-test -Dtest=*

生成されたjunit互換のxmlファイルを指すjunitパーサータスクがもう1つあります。そのため、一度竹のビルドを実行すると、すべてのテストに合格したとしても、「失敗したテストは見つかりませんでした。コンパイル エラーが発生した可能性があります」というメッセージが表示された赤いビルドが表示されます。

この点について誰か助けてください。

4

3 に答える 3

17

ビルド スクリプトは成功したテスト レポートを生成している可能性がありますが、タスクの 1 つ (または両方) が失敗しています。これは、テストが完了した後におそらく*失敗が発生していることを意味します。ビルド ログでエラーを確認します。また、Bamboo サーバーに (bamboo ユーザーとして) ログインし、手動でコマンドを実行してみてください。

過去に、テスト タスクがテスト実行の途中でクラッシュし、その結果、Bamboo が無視した 1 つの不正な形式のレポートと、多数の成功したレポートが生成されたときに、このメッセージを見たことがあります。

*ビルドログをチェックして、テストが実際に実行されていることを確認してください。mvn clean がテスト レポート ディレクトリを消去しない場合、Bamboo は古いテスト レポートを解析している可能性があります。


編集:(キショアのリンクに応じて)

Xvfb を強制終了するタスクがビルドの失敗の原因のようです。

18-Jul-2012 09:50:18    Starting task 'Kill Xvfb' of type 'com.atlassian.bamboo.plugins.scripttask:task.builder.script'

18-Jul-2012 09:50:18    
Beginning to execute external process for build 'Functional Tests - Application Release Test - Default Job'
 ... running command line: 
/bin/sh
  /tmp/FUNC-APPTEST-JOB1-91-ScriptBuildTask-4153769009554485085.sh
 ... in: /opt/bamboo-home/xml-data/build-dir/FUNC-APPTEST-JOB1
 ... using extra environment variables: 

<..snip (no meaningful output)..>

18-Jul-2012 09:50:18    Failing task since return code was 1 while expected 0

18-Jul-2012 09:50:18    Finished task 'Kill Xvfb'

「Kill​​ Xvfb」スクリプトは何をしますか? pkill -f "[x]vfb" のようなものを試していますか? pkill -f は、式がどのプロセスとも一致しない場合、暗黙のうちにゼロ以外を返します。

于 2012-07-17T22:19:20.853 に答える
4

私の解決策は、「スクリプト」タスクを作成することでした:

#!/bin/bash
/usr/local/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=PSR2 ./lib | exit 0

常にステータス0で終了します。

これは、ビルドが失敗する原因となるコーディング違反 (警告/エラー) が 1 つだけ見つかった場合に、PHP コード スニファーが終了ステータス 1 を返すためです。

于 2013-03-19T08:07:18.183 に答える
2

簡単な修正であることが判明しました。

一般的な Bamboo の動作は、ログ全体をスキャンし、エラー コードを確認することです(1)。この特定の構成では、そのうちの 1 つが xvfb (フレーム バッファー) を強制終了する 6 つのスクリプトがありました。何らかの理由でサーバーが xvfb を強制終了できず、そのタスクが失敗コードを返していました。このため、すべてのテストに合格したにもかかわらず、bamboo は前のタスクからこのエラー コードの 1 つを取得し、ビルドが失敗していました。

現在の修正は、xvfb を強制終了し、ビルドが緑色になったタスクを削除することです! \o/.

于 2012-07-19T19:04:34.090 に答える