Bre*_*the 16 teamcity nunit-3.0
现在,TeamCity 9.1.x支持NUnit 3.0,但是您必须安装运行器并在步骤中指定nunit3.console.exe的路径.我的问题是我在哪里复制nunit3-console.exe?我必须把它放在所有代理商身上吗?我是否将它放在我的主TeamCity服务器上的目录中,它将由代理共享或拉取?似乎没有关于在何处复制这些文件的良好文档,以便所有代理都可以使用它们.
小智 28
您应该在要运行NUnit测试的每个代理上安装NUnit控制台.
最好的选择是:
添加对NuGet包的引用(https://www.nuget.org/packages/NUnit.Runners/).
要恢复包,您可以使用"NuGet Installer"构建步骤,请参阅以下博客文章:https://blog.jetbrains.com/teamcity/2013/08/nuget-package-restore-with-teamcity/
之后,您只需从已恢复的NuGet包中设置路径,例如"packages\NUnit.Console.3.0.0\tools \nunit3-console.exe".
以@ NikolayP的答案为基础:
- 添加对NuGet包的引用(https://www.nuget.org/packages/NUnit.Runners/).
- 要恢复包,您可以使用"NuGet Installer"构建步骤,请参阅以下博客文章:https://blog.jetbrains.com/teamcity/2013/08/nuget-package-restore-with-teamcity/
- 之后,您只需从已恢复的NuGet包中设置路径,例如"packages\NUnit.Console.3.0.0\tools \nunit3-console.exe".
我编写了以下PowerShell脚本来确定正确的NUnit.ConsoleRunner包目录,并在运行NUnit任务之前填充TeamCity变量.它使用最新版本的NUnit.Console包.
$SrcDirectory = "%src.directory%"
$PackagesDirectory = Join-Path $SrcDirectory packages
$NUnitConsoleRunnerPackageDirectory = Get-ChildItem (Join-Path $PackagesDirectory NUnit.ConsoleRunner.*) | %{
@{
Directory = $_.FullName
Version = [Version]::Parse(($_.Name -replace "NUnit.ConsoleRunner.",""))
}
} | Sort-Object Version -Descending | Select-Object -First 1 | %{ $_.Directory }
if (!$NUnitConsoleRunnerPackageDirectory) {
throw [IO.DirectoryNotFoundException] "NUnit console runner package directory not found"
}
Write-Output "##teamcity[setParameter name='nunit.consolerunner.directory' value='$NUnitConsoleRunnerPackageDirectory']"
Run Code Online (Sandbox Code Playgroud)
请注意,您需要将src.directory变量定义为指向包含packages构建代理程序目录的目录,或者为PowerShell脚本提供必要的根目录.您还需要nunit.consolerunner.directory使用默认值empty 定义变量.
如果由于某种原因无法找到NUnit.ConsoleRunner目录,该脚本也将抛出异常.
构建正在代理上运行,因此您需要在要运行构建的所有代理上安装 NUnit3。
| 归档时间: |
|
| 查看次数: |
11424 次 |
| 最近记录: |