针对 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
posted @ 2025-12-04 16:26  沈星繁  阅读(1)  评论(0)    收藏  举报