使用 MSBuild.exe 和 VSTest.console.exe 的 VS 2019 自动化构建和测试
VS 2019 Automating Build and Test with MSBuild.exe and VSTest.console.exe
我的自制自动化如下(我用的是bashshell):
cd c:/tmp
rm -rf myproj
git clone <repo-url>/myproj -b releaseX
cd myproj
// Get the NuGet packages
msbuild.exe -t:restore
wait
// Build my Release Version
msbuild.exe myproj.sln -t:Rebuild -p:Configuration=Release
wait
// Run my Unit Tests that I keep in a UnitTest dir
vstest.console.exe UnitTests/bin/Release/netcoreapp2.2/UnitTests.dll
wait
除了一些硬编码的目录名称或项目名称之外,这是使用 VSTest 环境进行自动化的有效方法吗?我的目标是实现一个简洁的夜间构建和测试环境。
你的方法没有问题,会奏效的。
我给你的建议:
- 根据您的 UT 二进制文件的路径,您的目标是 .NET Core。您可以在 UT 项目上调用
dotnet test
,而不是直接调用 vstest.console.exe。这将避免必须指定二进制文件的确切路径,dotnet
命令会找出它们的位置。
- 同样,您可以调用
dotnet restore
和 dotnet build
而不是 msbuild
等价物。除了 "modern". 之外,这样做并没有太大的好处。
我的自制自动化如下(我用的是bashshell):
cd c:/tmp
rm -rf myproj
git clone <repo-url>/myproj -b releaseX
cd myproj
// Get the NuGet packages
msbuild.exe -t:restore
wait
// Build my Release Version
msbuild.exe myproj.sln -t:Rebuild -p:Configuration=Release
wait
// Run my Unit Tests that I keep in a UnitTest dir
vstest.console.exe UnitTests/bin/Release/netcoreapp2.2/UnitTests.dll
wait
除了一些硬编码的目录名称或项目名称之外,这是使用 VSTest 环境进行自动化的有效方法吗?我的目标是实现一个简洁的夜间构建和测试环境。
你的方法没有问题,会奏效的。
我给你的建议:
- 根据您的 UT 二进制文件的路径,您的目标是 .NET Core。您可以在 UT 项目上调用
dotnet test
,而不是直接调用 vstest.console.exe。这将避免必须指定二进制文件的确切路径,dotnet
命令会找出它们的位置。 - 同样,您可以调用
dotnet restore
和dotnet build
而不是msbuild
等价物。除了 "modern". 之外,这样做并没有太大的好处。