如何使用Jenkins运行XUnit测试

时间:2016-02-15 09:33:44

标签: jenkins xunit.net

我刚刚开始使用XUnit并配置Jenkins,我想询问是否有办法运行由Jenkins直接启动的XUnit测试,而不是使用Windows批处理命令启动XUnit的控制台运行。

我知道通过Console Runner执行Windows批处理命令来运行XUnit测试是可能的,但是我正在寻找插件/例如包含XUnit Runner的任何东西,你只需指向dll所以他启动测试并处理XML输出。

5 个答案:

答案 0 :(得分:6)

不,没有用于执行xUnit.net测试的Jenkins插件。

最简单的方法是在Jenkins作业中运行Windows批处理命令。

您至少可以使用xUnit plugin来解析xUnit.net中的测试结果XML文件,并根据是否通过所有测试来更新构建结果。

答案 1 :(得分:4)

您可以使用xUnit Jenkins插件。

1)安装了xUnit插件 2)在您的管道中保存带有xUnit结果的xml文件(我使用https://github.com/Faizan2304/LoggerExtensions使其与#34; dotnet test"命令一起使用。) 3)使用以下代码发布结果:

step([$class: 'XUnitBuilder',
    thresholds: [[$class: 'FailedThreshold', unstableThreshold: '1']],
    tools: [[$class: 'XUnitDotNetTestType', pattern: '{path to your xml file}']]])

答案 2 :(得分:3)

The xUnit Jenkins Plugin now supports xUnit.net

  

版本1.93
  *增加了对xUnit.net v2的支持

答案 3 :(得分:0)

提供的答案确实很有帮助,但是我没有设法使用xUnitPlugin,所以我依靠ReportUnit来生成结果。

  1. add NunitXml.TestLogger打包到测试项目,以便能够将其用作自定义记录器

  2. [Windows批处理命令]运行测试并生成输出“ NUnit”样式:

    "path_to_report_unit\ReportUnit.exe" "path_to_results\xunit_results.xml" "path_to_results\xunit_results.html"
    
  3. [Windows批处理命令]根据先前的输出生成报告

    **\*xunit*.html

如果需要,可以轻松将html嵌入到某些电子邮件中(例如,可编辑的电子邮件通知->触发器->将附件模式设置为objects objects::rotateSpaceship(GLFWwindow * window, objects & sp) { GLfloat spaceship_angle = sp.getAngle(); GLfloat newAngle = sp.getAngle() + 0.5; sp.setAngle(newAngle); while (!glfwWindowShouldClose(window)) { glClear(GL_COLOR_BUFFER_BIT); GLfloat spaceShipRightLine[] = { x, y + 80, 0, x - 50, y - 50, 0 }; GLfloat spaceShipLeftLine[] = { x, y + 80, 0, x + 50, y - 50, 0 }; GLfloat spaceShipMiddleLine[] = { sp.x - 30 ,sp.y,0, sp.x + 35,sp.y,0 }; glPushMatrix(); glTranslatef(0.0, 0.01, 0.0); // 3. Translate to the object's position. glRotatef(sp.getAngle(), 0.0, 0.0, 1.0); // 2. Rotate the object. glTranslatef(0.0, 0.01, 0.0); // 1. Translate to the origin. glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0, spaceShipRightLine); glDrawArrays(GL_LINES, 0, 2); glDisableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0, spaceShipLeftLine); glDrawArrays(GL_LINES, 0, 2); glDisableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(3, GL_FLOAT, 0, spaceShipMiddleLine); glDrawArrays(GL_LINES, 0, 2); glDisableClientState(GL_VERTEX_ARRAY); glPopMatrix(); // Swap front and back buffers glfwSwapBuffers(window); // Poll for and process events glfwPollEvents(); } glfwTerminate(); return sp; }

答案 4 :(得分:0)

这样的事情会起作用:

bat'For /R .\Tests\ %%G IN (bin\release\*.test.dll) do packages\xunit.runner.console.2.4.1\tools\net461\xunit.console.x86。 exe "%%G" -junit "%%~nG.xml"'

此脚本对“Tests”文件夹中的所有 xunit dll 运行测试。它还将在junit中输出测试结果,因此您可以通过以下行简单地发布到Jenkins

junit '*.Test.xml'