2

私はプレイを使用しています!WebDrive モジュールとジョブは正常に実行されますが、テストが失敗すると、Jenkins ジョブは「すべてのテストに合格しました」と表示します。テスト結果を配線しようとしていますが、問題が発生し続けています。

Jenkins 用の SeleniumHQ プラグインを使用してみましたが、以下に示すエラーが発生します。私は Firefox を使用しているので、テスト結果の場所を {app}/test-result/FirefoxDriver/*.html に設定しました。

Publishing Selenium report...
ERROR: No Test Report Found
Build step 'Publish Selenium Report' changed build result to FAILURE
Finished: FAILURE

したがって、出力は実際には Selenium ではないと思います。プレイで引いてみた!プラグインとそれは良いオプションを与えませんでした。私はプレイを試しました!自動テストはビルド後のステップを報告しますが、それはアプリケーションログを表示するだけになりました。

最後に、テスト ツールの結果レポートを発行するビルド後の手順を使用してみました。ドキュメントが非常にひどいものであり、Jenkins は私が見つけたデバッグやトラブルシューティングの情報を提供していないため、これは特にイライラします。

Custom Tool Pattern: {app}/test-result/FirefoxDriver/*.html
Custom stylesheet: scripts/webdrive2junit.xsl

私が設定した XSL は以下であり、一貫して発生するエラーはその下にあります。webdrive:test から Jenkins ジョブにテスト結果を取得している人はいますか?

<?xml version="1.0" encoding="UTF-8"?>
<!--
 - Hopefully we won't use this for long.  I put it together to get some information
 - out of the webdrive:test results while I look for a better solution.
 -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="child::body">
    <xsl:variable name="test" select="normalize-space(descendant::div/h1)"/>
    <testsuite>
      <xsl:attribute name="name">
        <xsl:value-of select="$test"/>
      </xsl:attribute>
      <testcase>
        <xsl:attribute name="classname">
          <xsl:value-of select="$test"/>
        </xsl:attribute>
        <xsl:attribute name="name">
          <xsl:value-of select="descendant::div/div/table/thead/tr/th"/>
        </xsl:attribute>
        <xsl:if test="descendant::tr[@class='  status_failed']">
          <error />
        </xsl:if>
      </testcase>
    </testsuite>   
  </xsl:template>
</xsl:stylesheet>

ジョブログに表示されるエラーは次のとおりです。

[xUnit] [INFO] - [Custom Tool] - 1 test report file(s) were found with the pattern 'src/test-result/FirefoxDriver/*.html' relative to '/opt/ci/hudson/workspace/enterprise_another-play-test' for the testing framework 'Custom Tool'.
[xUnit] [ERROR] - Conversion error Error to convert - A file not found
ERROR: Publisher org.jenkinsci.plugins.xunit.XUnitPublisher aborted due to exception
hudson.util.IOException2: remote file operation failed: /opt/ci/hudson/workspace/enterprise_another-play-test at hudson.remoting.Channel@34b246:build-trunk-2
...
Caused by: com.thalesgroup.hudson.plugins.xunit.exception.XUnitException: Conversion error Error to convert - A file not found
    at com.thalesgroup.hudson.plugins.xunit.service.XUnitConversionService.convert(XUnitConversionService.java:89)
    at com.thalesgroup.hudson.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:135)
    ... 11 more
Caused by: com.thalesgroup.dtkit.util.converter.ConversionException: Error to convert - A file not found
    at com.thalesgroup.dtkit.util.converter.ConversionService.convert(ConversionService.java:369)
    at com.thalesgroup.dtkit.util.converter.ConversionService.convert(ConversionService.java:177)
    at com.thalesgroup.dtkit.util.converter.ConversionService.convert(ConversionService.java:114)
    at com.thalesgroup.dtkit.metrics.model.InputMetricXSL.convert(InputMetricXSL.java:196)
    at com.thalesgroup.dtkit.metrics.model.InputMetricXSL.convert(InputMetricXSL.java:202)
    at com.thalesgroup.hudson.plugins.xunit.service.XUnitConversionService.convertCustomInputMetric(XUnitConversionService.java:104)
    at com.thalesgroup.hudson.plugins.xunit.service.XUnitConversionService.convert(XUnitConversionService.java:78)
    ... 12 more
Caused by: org.xml.sax.SAXParseException: The element type "meta" must be terminated by the matching end-tag "</meta>".
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at com.thalesgroup.dtkit.util.converter.ConversionService.convert(ConversionService.java:324)
    ... 18 more
Finished: FAILURE
4

1 に答える 1

0

私の現在の回避策は以下のとおりです。任意の改善をいただければ幸いです。Playプラグインは私にはうまく機能しないので(webdriveモジュールが表示されるため)、私のビルド手順はbashスクリプトです。

# work-around for the XUnit Plugin trouble; feel free to Tidy up
find src/test-result/FirefoxDriver -name "*.html" -print0 | xargs -r0 -n 1 bash -c '
  testname=$(basename ${0%.html.*.html});
  xsltproc --html -o src/test-result/FirefoxDriver/TEST-$testname.xml scripts/webdrive2junit.xsl $0
'

JenkinsへのXUnitプラグインのコード(ビルド後のテストツールの結果レポートの公開ステップの背後にあると思います)を調べたところ、思ったとおりに機能していないことがわかりました。

于 2012-02-28T00:44:37.290 に答える