针对 Multitarget 的 C# 库运行自动化测试的方法
开发 Cnblogs.DashScope.Sdk 的时候遇上的问题。本来高版本 .net 是可以测试低版本的测试的,但还是希望在真实的低版本镜像里运行测试。
后来发现测试项目本身也可以是 Multitarget 的,因此只需要把测试项目本身也设置上 TargetFrameworks,然后在 CI 里设置 -p:TargetFrameworks=当前测试的版本 就可以在真实镜像里运行测试了。
以 GitHub CI 为例
jobs:
test-net6:
runs-on: ubuntu-latest
container: mcr.microsoft.com/dotnet/sdk:6.0
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Test
run: dotnet test test/Cnblogs.DashScope.Sdk.UnitTests -c Release -p:TargetFrameworks=net6.0
test-net8:
runs-on: ubuntu-latest
container: mcr.microsoft.com/dotnet/sdk:8.0
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Test
run: dotnet test test/Cnblogs.DashScope.Sdk.UnitTests -c Release -p:TargetFrameworks=net8.0
浙公网安备 33010602011771号