2017-04-07 24 views
4

dotnetテストを使用してdotnetコアライブラリの単体テストを実行しています。私はこのようにジェンキンスの奴隷でテストを実行します。Jenkinsとdotnetテストの統合

dotnet test test/Turbine.Domain.UnitTest -xml mstest-reports/Turbine.Domain.UnitTest.xml 

テストレポートは次のようになります。私はレポートで試してみて、読むために私のジェンキンスジョブのDSLでarchiveXUnitブロックを使用

<?xml version="1.0" encoding="utf-8"?> 
<assemblies> 
    <assembly name="Turbine.Domain.UnitTest.dll" environment="64-bit .NET (unknown version) [collection-per-class, parallel (8 threads)]" test-framework="xUnit.net 2.1.0.3179" run-date="2017-04-07" run-time="13:34:31" total="31" passed="31" failed="0" skipped="0" time="0.170" errors="0"> 
    <errors /> 
    <collection total="3" passed="3" failed="0" skipped="0" name="Test collection for Turbine.Domain.Tests.AccumulatePositionsTests" time="0.052"> 
     <test name="Turbine.Domain.Tests.AccumulatePositionsTests.CanAccumulatePositionsByPortfolioIndex" type="Turbine.Domain.Tests.AccumulatePositionsTests" method="CanAccumulatePositionsByPortfolioIndex" time="0.0402475" result="Pass" /> 
     <test name="Turbine.Domain.Tests.AccumulatePositionsTests.LotEventsTriggerPositionEventsImmediately" type="Turbine.Domain.Tests.AccumulatePositionsTests" method="LotEventsTriggerPositionEventsImmediately" time="0.0102925" result="Pass" /> 
     <test name="Turbine.Domain.Tests.AccumulatePositionsTests.CanAccumulatePositionsByDefaultIndex" type="Turbine.Domain.Tests.AccumulatePositionsTests" method="CanAccumulatePositionsByDefaultIndex" time="0.0" result="Pass" /> 
    </collection> 
    <collection total="4" passed="4" failed="0" skipped="0" name="Test collection for Turbine.Domain.Tests.Queries.AnalyticsSummaryTests" time="0.087"> 
     <test name="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests.MarketValueHandlesNegativeAmounts" type="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests" method="MarketValueHandlesNegativeAmounts" time="0.0826806" result="Pass" /> 
     <test name="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests.CanProduceFirmSummaryFromSnapshot" type="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests" method="CanProduceFirmSummaryFromSnapshot" time="0.0012097" result="Pass" /> 
     <test name="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests.GrossMarketValueHandlesNegativeAmounts" type="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests" method="GrossMarketValueHandlesNegativeAmounts" time="0.0020873" result="Pass" /> 
     <test name="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests.FirmSummaryProducesOutputOnQuote" type="Turbine.Domain.Tests.Queries.AnalyticsSummaryTests" method="FirmSummaryProducesOutputOnQuote" time="0.0010767" result="Pass" /> 
    </collection> 
etc... 

archiveXUnit { 
    msTest { 
    pattern('**/mstest-reports/*.xml') 
    } 
} 

ジェンキンスは報告書を見ています。

録音テストは

[xUnit] [INFO] - Starting to record. 
[xUnit] [INFO] - Processing MSTest-Version N/A (default) 
[xUnit] [INFO] - [MSTest-Version N/A (default)] - 1 test report file(s) were found with the pattern '**/mstest-reports/*.xml' relative to '/home/jenkins/workspace/routing/Turbine/build_Turbine' for the testing framework 'MSTest-Version N/A (default)'. 
[xUnit] [INFO] - Check 'Failed Tests' threshold. 
[xUnit] [INFO] - Check 'Skipped Tests' threshold. 
[xUnit] [INFO] - Setting the build status to SUCCESS 
[xUnit] [INFO] - Stopping recording. 

を結果しかし、それはその報告書に結果を解析し、取り入れていません。私はジェンキンスのダッシュボードのテストレポートを見ることができません。

アイデア?

答えて

4

だから私はxUnitのと喜んで働くTRX形式を使用しています:

ランテストを:

 
No test discoverer is registered to perform discovery of test cases. 
Register a test discoverer and try again. 

そしてそう:

dotnet test test_dir\test_project.csproj --logger "trx;LogFileName=results\unit_tests.xml" 

しかし、これを使用すると、私に次のような問題を与えますxunitランナーを手動でテストプロジェクトのbinフォルダーにコピーすると、これが修正されます(これはうんざりです):

0123示すように、私はその後、公開のxUnitを追加

は、ステップをテスト:

Jenkins xUnit Reporter

テストは、プロジェクトに正しく報告し、ページを構築します。