blu*_*lds 105 c# continuous-integration hudson jenkins
我正在寻找为C#应用程序运行自动NUnit测试,每晚和每次提交到svn.
这是Jenkins-CI能做的吗?
是否有在线教程或如何记录哪些文档类似我可以查看的设置?
Ral*_*oss 117
我需要完全按照你的方式做,这是我设置Jenkins的方法:
单个dll测试:
[PathToNUnit]\bin \nunit-console.exe [PathToTestDll]\Selenium.Tests.dll /xml=nunit-result.xml
使用NUnit测试项目进行多个dll测试:
[PathToNUnit]\bin \nunit-console.exe [PathToTests]\Selenium.Tests.nunit /xml=nunit-result.xml
构建项目后,NUNit现在将运行,结果将在仪表板上显示(如果将鼠标悬停在"天气"报告图标上)或" 上次测试结果"下的项目页面上.
您还可以从Visual Studio中或作为本地构建过程的一部分运行该命令.
这是我用来参考的两篇博客文章.我没有找到符合我要求的任何内容:
1小时持续集成设置指南:Jenkins遇见.Net(2011)
使用Hudson构建.NET项目的指南(2008)
Dan*_*ton 16
如果您不想对单元测试项目进行硬编码,那么最好编写一个脚本来获取所有单元测试项目dll.我们使用Powershell进行操作,并按照特定惯例命名我们的单元测试项目.以下是运行我们的单元测试的powershell文件的内容:
param(
[string] $sourceDirectory = $env:WORKSPACE
, $fileFilters = @("*.UnitTests.dll", "*_UnitTests.dll", "*UnitTests.dll")
, [string]$filterText = "*\bin\Debug*"
)
#script that executes all unit tests available.
$nUnitLog = Join-Path $sourceDirectory "UnitTestResults.txt"
$nUnitErrorLog = Join-Path $sourceDirectory "UnitTestErrors.txt"
Write-Host "Source: $sourceDirectory"
Write-Host "NUnit Results: $nUnitLog"
Write-Host "NUnit Error Log: $nUnitErrorLog"
Write-Host "File Filters: $fileFilters"
Write-Host "Filter Text: $filterText"
$cFiles = ""
$nUnitExecutable = "C:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console-x86.exe"
# look through all subdirectories of the source folder and get any unit test assemblies. To avoid duplicates, only use the assemblies in the Debug folder
[array]$files = get-childitem $sourceDirectory -include $fileFilters -recurse | select -expand FullName | where {$_ -like $filterText}
foreach ($file in $files)
{
$cFiles = $cFiles + $file + " "
}
# set all arguments and execute the unit console
$argumentList = @("$cFiles", "/framework:net-4.5", "/xml=UnitTestResults.xml")
$unitTestProcess = start-process -filepath $nUnitExecutable -argumentlist $argumentList -wait -nonewwindow -passthru -RedirectStandardOutput $nUnitLog -RedirectStandardError $nUnitErrorLog
if ($unitTestProcess.ExitCode -ne 0)
{
"Unit Test Process Exit Code: " + $unitTestProcess.ExitCode
"See $nUnitLog for more information or $nUnitErrorLog for any possible errors."
"Errors from NUnit Log File ($nUnitLog):"
Get-Content $nUnitLog | Write-Host
}
$exitCode = $unitTestProcess.ExitCode
exit $exitCode
Run Code Online (Sandbox Code Playgroud)
该脚本足够强大,我们正在重用所有构建作业.如果您不喜欢NUnit控制台的完整路径,则可以始终将该位置放在PATH环境变量中.
然后我们将RunUnitTests.ps1文件放在我们的构建服务器上并使用此批处理命令:
powershell.exe -file "{full-path-to-script-direcory}\RunUnitTests.ps1"
Run Code Online (Sandbox Code Playgroud)
小智 14
对于Nunit 3或以上的farmework:
构建步骤(Windows命令行)
"c:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" c:\AutomationTraining\CSharpSelenium\bin\Debug\test.dll --result=TestR.xml;format=nunit2
Nunit报告发布的后续步骤,它仅在Jenkins工作空间目录中显示测试结果文件,而不是在您的项目中: TestR.xml
我们需要以nunit2格式制作测试结果,因为现在Jenkins Nunit插件无法识别Nunit3结果格式.选项字符串格式也不同:
--result=TestR.xml;format=nunit2
NOT
/xml=nunit-result.xml
这很好用,我之前已经设置好了.
配置NUnit以将结果输出到XML文件,并配置NUnit Jenkins插件以使用此XML文件.结果将显示在仪表板上.
现在,您如何调用NUnit取决于您.我们这样做的方式是:Jenkins作业执行NAnt目标执行NUnit测试套件.
您可以将Jenkins作业配置为在提交时运行和/或在特定时间安排.
| 归档时间: |
|
| 查看次数: |
72405 次 |
| 最近记录: |