Unit testing 单元测试在构建服务器上执行缓慢

Unit testing 单元测试在构建服务器上执行缓慢,unit-testing,.net-core,azure-devops,azure-service-fabric,xunit,Unit Testing,.net Core,Azure Devops,Azure Service Fabric,Xunit,我有一个.NET解决方案,其中包含一些作为nuget包发布的Service Fabric库项目(.NET Standard 2.0)。解决方案(.NET Core 2.0)中的单元测试项目使用xUnit 我注意到,与以前的版本相比,在构建服务器上运行测试花费的时间太多 我尝试在本地计算机上使用Reformer/Visual Studio或powershell脚本运行测试,时间不到5分钟: $stopwatch = [system.diagnostics.stopwatch]::StartNew(

我有一个.NET解决方案,其中包含一些作为nuget包发布的Service Fabric库项目(.NET Standard 2.0)。解决方案(.NET Core 2.0)中的单元测试项目使用xUnit

我注意到,与以前的版本相比,在构建服务器上运行测试花费的时间太多

我尝试在本地计算机上使用Reformer/Visual Studio或powershell脚本运行测试,时间不到5分钟:

$stopwatch = [system.diagnostics.stopwatch]::StartNew()

Get-ChildItem -recurse *tests.csproj | % { 
    dotnet test $_.FullName --no-build --no-restore;
}

$stopwatch.Stop()
Write-Host $stopwatch.Elapsed
但是在Azure Devops中,单元测试任务花费了超过27分钟完成

这是构建管道/单元测试任务:

知道发生了什么吗?

在中找到了解决方案

将以下参数添加到
dotnet build
任务的参数中,成功了:

-nodereuse:错


顺便说一句,生成代理是Windows机器,而不是上面提到的mac或linux。

这是本地机器上的PS与生成机器上的生成任务的比较还是生成机器上的PS?我在本地机器上运行了powershell脚本。我也会在构建服务器上尝试,使用Powershell任务。我认为这太广泛了。可能是“构建服务器的负载太大”,也可能是一些与IO相关的测试,这些测试在该机器上完全不同。我首先尝试获取每个测试的统计数据,并开始比较它们。如果只有一些测试用例慢得多,或者它们被允许以同样的方式慢下来。@GhostCat其他构建代理也会出现同样的问题。与在我的机器上运行相比,所有的测试似乎都要慢一些。我看不出其他任务有什么不同,比如恢复nuget包或构建解决方案,虽然我同意@GhostCat的观点,但我认为构建机器的规格通常低于开发机器的规格。只是一个随机的想法-你试过使用XUnit以外的东西吗?为什么不使用默认的VisualStudio测试工具和库?设置XUnit可能是另一项开销。