gpt4 book ai didi

.net - 如何使用 jenkins 管道发布 dotnet 核心测试?

转载 作者:行者123 更新时间:2023-12-03 19:35:40 25 4
gpt4 key购买 nike

我正在尝试使用 jenkins-pipeline 发布测试结果,

使用这个管道脚本,我设法完成构建并生成“xml”输出:

node {
stage 'Checkout'
checkout scm

stage 'Build'
bat "\"C:/Program Files/dotnet/dotnet.exe\" restore \"${workspace}/MyProg.sln\""
bat "\"C:/Program Files/dotnet/dotnet.exe\" build \"${workspace}/MyProg.sln\""

stage 'UnitTests'
bat returnStatus: true, script: "\"C:/Program Files/dotnet/dotnet.exe\" test \"${workspace}/MyProg.sln\" --logger \"trx;LogFileName=unit_tests.xml\" --no-build"
nunit testResultsPattern: 'Tests\\*Test*\\TestResults\\unit_tests.xml'
}

但是在“UnitTest”阶段我收到了这个错误:

" Publish NUnit test result report Could not read the XSL XML file. Please report this issue to the plugin author "



当我使用“正常”步骤构建(没有管道框架)时,测试得到发布。
使用:
  • DotNet Core 2.0
  • Jenkins 2.111
  • NUnit 插件 0.23

  • 附加 XML 之一:

    <?xml version="1.0" encoding="UTF-8"?>
    <TestRun id="201fdc5c-9a47-461b-a56c-1aec8778053d" name="golano1@VM-CCT-BUILD3 2018-03-28 17:36:50" runUser="CORP\golano1" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
    <Times creation="2018-03-28T17:36:50.5380380+03:00" queuing="2018-03-28T17:36:50.5380497+03:00" start="2018-03-28T17:36:38.1418862+03:00" finish="2018-03-28T17:36:55.6498820+03:00" />
    <TestSettings name="default" id="3e9b0993-3888-4428-bd08-e217e3b54831">
    <Deployment runDeploymentRoot="golano1_VM-CCT-BUILD3 2018-03-28 17_36_50" />
    </TestSettings>
    <Results>
    <UnitTestResult executionId="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" testId="a08b2ec5-a68d-434b-a35f-6c65159eee8f" testName="TestSentinalOneBigFile_Failed" computerName="VM-CCT-BUILD3" duration="00:00:05.0340000" startTime="2018-03-28T17:36:45.0000000+03:00" endTime="2018-03-28T17:36:50.0000000+03:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" />
    <UnitTestResult executionId="49fb4bd0-d650-4ed4-b0f2-40241b138f40" testId="15590544-6d25-4b07-9736-91fc3089eb1d" testName="TestSentinalOneFullScanOfSingleFile_Success" computerName="VM-CCT-BUILD3" duration="00:00:05.0130000" startTime="2018-03-28T17:36:50.0000000+03:00" endTime="2018-03-28T17:36:55.0000000+03:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="49fb4bd0-d650-4ed4-b0f2-40241b138f40" />
    </Results>
    <TestDefinitions>
    <UnitTest name="TestSentinalOneBigFile_Failed" storage="c:\jenkins\workspace\testfolder\pg_branchbuild\tests\sentinalonetests\bin\debug\netcoreapp2.0\sentinalonetests.dll" id="a08b2ec5-a68d-434b-a35f-6c65159eee8f">
    <Execution id="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" />
    <TestMethod codeBase="C:\Jenkins\workspace\TestFolder\PG_BranchBuild\Tests\SentinaloneTests\bin\Debug\netcoreapp2.0\SentinaloneTests.dll" executorUriOfAdapter="executor://nunit3testexecutor/" className="SentinaloneTests.SentinaloneEngineConnectorTest" name="TestSentinalOneBigFile_Failed" />
    </UnitTest>
    <UnitTest name="TestSentinalOneFullScanOfSingleFile_Success" storage="c:\jenkins\workspace\testfolder\pg_branchbuild\tests\sentinalonetests\bin\debug\netcoreapp2.0\sentinalonetests.dll" id="15590544-6d25-4b07-9736-91fc3089eb1d">
    <Execution id="49fb4bd0-d650-4ed4-b0f2-40241b138f40" />
    <TestMethod codeBase="C:\Jenkins\workspace\TestFolder\PG_BranchBuild\Tests\SentinaloneTests\bin\Debug\netcoreapp2.0\SentinaloneTests.dll" executorUriOfAdapter="executor://nunit3testexecutor/" className="SentinaloneTests.SentinaloneEngineConnectorTest" name="TestSentinalOneFullScanOfSingleFile_Success" />
    </UnitTest>
    </TestDefinitions>
    <TestEntries>
    <TestEntry testId="a08b2ec5-a68d-434b-a35f-6c65159eee8f" executionId="77a19978-2bbb-4bcb-afaa-d5be4384e0d1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="15590544-6d25-4b07-9736-91fc3089eb1d" executionId="49fb4bd0-d650-4ed4-b0f2-40241b138f40" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    </TestEntries>
    <TestLists>
    <TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
    </TestLists>
    <ResultSummary outcome="Completed">
    <Counters total="2" executed="2" passed="2" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
    <Output>
    <StdOut>NUnit Adapter 3.8.0.0: Test execution startedRunning all tests in C:\Jenkins\workspace\TestFolder\PG_BranchBuild\Tests\SentinaloneTests\bin\Debug\netcoreapp2.0\SentinaloneTests.dllNUnit3TestExecutor converted 2 of 2 NUnit test casesNUnit Adapter 3.8.0.0: Test execution complete</StdOut>
    </Output>
    </ResultSummary>
    </TestRun>


    我究竟做错了什么?

    还尝试过:
    step([$class: 'NUnitPublisher', testResultsPattern: 'Tests\\FilesScannerTests\\TestResults\\unit_tests.xml', debug: false, keepJUnitReports: true, skipJUnitArchiver:false, failIfNoResults: true])

    但它也没有成功..

    最佳答案

    我设法使用“ MSTestPublisher ”类做到了这一点,

    所以最终的管道是:

    node {
    stage 'Checkout'
    checkout scm

    stage 'Build'
    bat "\"C:/Program Files/dotnet/dotnet.exe\" restore \"${workspace}/MyProg.sln\""
    bat "\"C:/Program Files/dotnet/dotnet.exe\" build \"${workspace}/MyProg.sln\""

    stage 'UnitTests'
    bat returnStatus: true, script: "\"C:/Program Files/dotnet/dotnet.exe\" test \"${workspace}/MyProg.sln\" --logger \"trx;LogFileName=unit_tests.xml\" --no-build"
    step([$class: 'MSTestPublisher', testResultsFile:"**/unit_tests.xml", failOnError: true, keepLongStdio: true])
    }


    我已经上传了一些我制作的示例到我的 GitHub 供大家使用和贡献,请随意查看:

    https://github.com/avrum/JenkinsFileFor.NETCore

    那些管道 jenkinsfile 会将此管道模板添加到您的构建中:

    Example Jenkins Pipeline|Solid

    关于.net - 如何使用 jenkins 管道发布 dotnet 核心测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49541087/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com