2016-03-19 8 views
0

私はC#プロジェクトでJenkinsをテストし、コードカバレッジを自動化するように設定しようとしています。私はテストを動作させて、コードを生成し、CoverageConverter.exe(プラグインを使用せずに - まっすぐなバッチファイルと生のEXEのみ)を使用してコードを生成していますが、MSTestのポストビルドステップを追加するとJenkins 、私は次のエラーを取得:エラーが発生してもJenkins MSTest-Pluginエラー:java.lang.NoClassDefFoundError:hudson/maven/MavenBuild

[MSTEST-PLUGIN] Processing test results in file(s) **/*.trx 
MSTest: D:\Jenkins\jobs\Framework\workspace\TestResults\james_CD 2016-03-18 20_05_13.trx 
ERROR: Step ‘Publish MSTest test result report’ aborted due to exception: 
java.lang.NoClassDefFoundError: hudson/maven/MavenBuild 
    at hudson.plugins.emma.EmmaPublisher.perform(EmmaPublisher.java:103) 
    at hudson.plugins.mstest.MSTestPublisher.perform(MSTestPublisher.java:134) 
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723) 
    at hudson.model.Build$BuildExecution.post2(Build.java:185) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668) 
    at hudson.model.Run.execute(Run.java:1763) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:410) 
Caused by: java.lang.ClassNotFoundException: hudson.maven.MavenBuild 
    at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1376) 
    at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1326) 
    at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1079) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 11 more 

を、「テスト結果の傾向」グラフは、プロジェクトのページに表示され、正しいように見える、と「コードカバレッジトレンド」のセクションがあり、それ画像リンクが壊れています。

私は、次のバッチスニペットを使用してテストやコードカバレッジを実行している:

@ECHO "`nRunning tests`n---------------------------" 
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" TestFramework\bin\Release\TestFramework.dll /EnableCodeCoverage /Settings:TestFramework\Settings.testsettings /Logger:trx 
@ECHO %ERRORLEVEL% 
REM @IF %ERRORLEVEL% NEQ 0 EXIT 1 

@ECHO "`n`nConverting code coverage results`n---------------------------" 
@IF EXIST emma\. rd emma /s /q >nul 
md emma 
del emma\temp.coverage /Q >nul 
for /R TestResults %%f in (*.coverage) do copy "%%f" emma\temp.coverage /B /Y 
"C:\Program Files\JenkinsUtilities\CoverageConverter\CoverageConverter.exe" /in:emma\temp.coverage /out:emma\coverage.xml /xsl:"C:\Program Files\JenkinsUtilities\MSTestCoverageToEmma.xsl" 
goto END 

私は同様のプロジェクトが機能している別のジェンキンスシステムからの基本的なプロセスをコピーしますが、関連するすべての違いを見つけることができませんシステム間。

私はすでに試してみました: 1.更新するJava を2ジェンキンス 3.アンインストールを更新し、MSBuildの、MSTestを、MSTestをランナー、およびVSTestランナー、とMavenの統合プラグインを再インストールします。

私はこの時点で本当に近くにいるように感じますが、Javaでの経験はほとんどありません。この時点でこのエラーを修正することはできません。誰も私がClassNotFoundExceptionを診断するのを助けることができますか?

答えて

0

ログを徹底的にコーディングして、別のマシン上でEclipseをインストールして、Javaファイルを覗いたところ、予期せず動作し始めました。これまでにインストールしたEmma Line CoverageプラグインがJaCoCoプラグインに置き換わっているとわかったときにインストールしたJaCoCoプラグインのインストールに関連している可能性があります。

関連する問題