2016-03-19 20 views
0

Jenkins'i C# projemde otomatik test ve kod kapsamı için çalışmak üzere kurmaya çalışıyorum. Ben CoverageConverter.exe (herhangi bir eklenti kullanmadan sadece düz toplu iş dosyaları ve ham EXE'leri kullanarak) oluşturma ve dönüştürme çalışma ve kod kapsama dosyaları var, ancak MSTest post-build adım ekleyerek verileri görüntülemek için Jenkins içinde görüntülemek , aşağıdaki hatayı alıyorum: hata rağmenJenkins MSTest Eklentisi Hatası: 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 

, 'test Sonucu Trend' grafiği proje sayfasında gösterir ve doğru olarak görünüyorsa ve 'Kod Kapsama Trend' için bir bölüm vardır, ama bu Kırık görüntü bağlantısı var.

Ben aşağıdaki toplu pasajını kullanarak testler ve kod kapsama çalıştırıyorum:

@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 

Ben benzer bir proje çalışmakta başka Jenkins sisteminden temel işlem kopyalanmış, ancak herhangi alakalı farklılıkları bulamıyor sistemler arasında.

Zaten denedim: 1. güncellenmesi Java 2. güncellenmesi Jenkins 3. Kaldırma ve MSBuild, mstest, MSTest Runner ve VSTest Runner yeniden ve Maven'in Entegrasyon eklentileri.

Bu noktada gerçekten yakın olduğumu hissediyorum, ancak Java ile çok az deneyimim var, bu noktada bu hatayı düzeltmek için bir kayıp yaşıyorum. ClassNotFoundException'ı teşhis etmeme yardımcı olan var mı?

cevap

0

Hatalı bir şekilde günlükleri taramak ve java dosyalarına bakmak için Eclipse'i (başka bir makinede) yükledikten sonra, beklenmedik şekilde çalışmaya başladı. Daha önce yüklemiş olduğum Emma Line Coverage eklentisinin JaCoCo eklentisi tarafından kaplandığını belirttiğimi fark ettiğimde yüklü olan JaCoCo eklentisini kurmakla ilgili olabilir.