我刚刚开始使用XUnit并配置Jenkins,我想询问是否有办法运行由Jenkins直接启动的XUnit测试,而不是使用Windows批处理命令启动XUnit的控制台运行。
我知道通过Console Runner执行Windows批处理命令来运行XUnit测试是可能的,但是我正在寻找插件/例如包含XUnit Runner的任何东西,你只需指向dll所以他启动测试并处理XML输出。
答案 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来生成结果。
add NunitXml.TestLogger打包到测试项目,以便能够将其用作自定义记录器
[Windows批处理命令]运行测试并生成输出“ NUnit”样式:
"path_to_report_unit\ReportUnit.exe" "path_to_results\xunit_results.xml" "path_to_results\xunit_results.html"
[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'