2

jenkins サーバーで phantomjs と casperjs を動作させました。テストが実行され、成功しました。しかし、ここに問題があります:

Casperjs はその結果を log.xml ファイルに記録します。そして、そのxmlファイルの内容をjenkins webUIに表示できると思いました。jenkins 用の xunit プラグインを見つけましたが、期待どおりに動作しません。

[37;42;1mPASS 12 個のテストが 22.324 秒で実行され、12 個が合格、0 個が失敗、0 個が疑わしい、0 個がスキップされました。[0m

ご覧のとおり、テストは成功しています

[32;1m ../../build/frontendtests/log.xml に保存された結果ログ
[0m Clover カバレッジ レポートの発行... Clover XML レポートの発行... Clover カバレッジ結果の発行... テスト結果の記録 [xUnit] [ INFO] - 記録を開始しています。[xUnit] [INFO] - AUnit-3.x を処理中 (デフォルト) [xUnit] [INFO] - [AUnit-3.x (デフォルト)] - パターン「build/frontendtests」のテスト レポート ファイルが 1 つ見つかりましたテスト フレームワーク 'AUnit-3.x (デフォルト)' の ' に対する /log.xml'。[xUnit] [エラー] - メトリック 'AUnit' の結果ファイル ' が無効です。結果ファイルはスキップされました。[xUnit] [INFO] - 「エラーが発生した場合にビルドに失敗しました」オプションが有効になっているため、ビルドに失敗します。

log.xml が AUnit で動作しないため、Jenkins ビルドが失敗します。JUnitとJSUnitも試しました。同じ結果です。しかし、私はそれを理解していません。casperjs は xunit xml ファイルをエクスポートし、xunit プラグインをインストールしました。しかし、プラグインは log.xml を読み取りません。

解決策はありますか?多分私のジェンキンス設定が間違っていますか?何か案は?

ありがとう...

ここに私のlog.xmlがあります

<?xml version="1.0" encoding="UTF-8"?>   <testsuites duration="3.859">
    <testsuite name="Checking the portal search for http://www.xxx.de/suche/jeans" tests="1" failures="0" errors="0" time="2.687" timestamp="2013-08-20T14:12:55.953Z" package="./execute_search_tests">
      <testcase name="Subject equals the expected value" classname="./execute_search_tests" time="2.687"></testcase>
      <system-out></system-out>
    </testsuite>
    <testsuite name="Checking the portal search for http://www.xxx.de/suche/asjdfkshjkfhdsjkafhkjasd" tests="1" failures="0" errors="0" time="1.172" timestamp="2013-08-20T14:12:55.954Z" package="./execute_search_tests">
      <testcase name="Subject equals the expected value" classname="./execute_search_tests" time="1.172"></testcase>
      <system-out></system-out>
    </testsuite>   </testsuites>
4

1 に答える 1

2

注: AUnit オプションを使用して XUnit ビルド後のアクションを構成しました。これは Ada 単体テスト用です。

しかし、XUnit プラグインと JUnit オプションもテストしましたが、それでも失敗しました。さらにログを有効にしましたが、それは役に立ちませんでした。

Aug 21, 2013 12:00:05 AM com.thalesgroup.hudson.plugins.xunit.service.XUnitService errorSystemLogger
SEVERE: [xUnit] - The result file '/Users/lacostej/.jenkins/workspace/test-casperjs-xunit/log.xml' for the metric 'JUnit' is not valid. The result file has been skipped.
Aug 21, 2013 12:00:05 AM com.thalesgroup.hudson.plugins.xunit.service.XUnitService warningSystemLogger
WARNING: [xUnit] - The file '/Users/lacostej/.jenkins/workspace/test-casperjs-xunit/log.xml' is an invalid file.
Aug 21, 2013 12:00:05 AM com.thalesgroup.hudson.plugins.xunit.service.XUnitService infoSystemLogger
INFO: [xUnit] - [JUnit] - 1 test report file(s) were found with the pattern 'log.xml' relative to '/Users/lacostej/.jenkins/workspace/test-casperjs-xunit' for the testing framework 'JUnit'.

それでも、「JUnit テスト結果レポート」プラグインを使用していくつかのテストを行ったところ、解析はうまくいきました。

アップデート

お気づきのように、問題は、 testsuites nodes の time の代わりに属性 duration を使用する casperjs ファイルにあります。Xunit は標準の junit よりも厳密です。

私のおすすめ:

  1. 標準の JUnit 解析を使用すると、機能します
  2. 本当に xunit を使用したい場合は、修正してから、xunit の解析に関するバグを報告してください。私が使用したテストケースの設定は次のとおりです: https://gist.github.com/lacostej/6287937
  3. または、XSL と一緒にカスタム スタイルを使用してみてください。XML が受け入れられない理由をデバッグして把握する必要があります。

オプション#1または#2を選択します。

于 2013-08-20T22:04:56.043 に答える