You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI流水线中运行Blazor bUnit测试?

在GitLab CI流水线中运行bUnit测试的实现方案

bUnit测试基于xUnit框架,完全支持通过dotnet test命令行工具运行,不需要依赖Visual Studio,这也是GitLab CI实现的核心基础。结合你的项目结构,按以下步骤配置即可:

1. 编写.gitlab-ci.yml配置文件

在项目根目录(OurProject/下)创建.gitlab-ci.yml文件,内容如下:

stages:
  - build
  - test

# 构建阶段:恢复依赖并编译整个解决方案
build:
  stage: build
  image: mcr.microsoft.com/dotnet/sdk:8.0  # 替换为你的项目使用的.NET版本,比如6.0/7.0
  script:
    - dotnet restore BlazorProject/BlazorProject.sln
    - dotnet build BlazorProject/BlazorProject.sln --configuration Release --no-restore

# 测试阶段:运行bUnit测试
test:
  stage: test
  image: mcr.microsoft.com/dotnet/sdk:8.0
  script:
    # 运行测试,指定测试项目路径,可生成JUnit格式报告让GitLab展示测试结果
    - dotnet test bUnitTests/bUnitTests.csproj --configuration Release --no-build --logger:"junit;LogFilePath=../test-results/bunit-results.xml"
  artifacts:
    # 上传测试报告,GitLab会自动解析展示
    reports:
      junit: test-results/bunit-results.xml
    paths:
      - test-results/

2. 关键说明

  • 镜像选择:使用微软官方的.NET SDK镜像,确保环境和本地开发一致,替换为你的项目实际使用的.NET版本(比如.NET 6就用mcr.microsoft.com/dotnet/sdk:6.0)。
  • 命令解释:
    • dotnet restore:恢复解决方案所有NuGet依赖,包括bUnit和xUnit相关包。
    • dotnet build:编译解决方案,--no-restore避免重复恢复依赖提升效率。
    • dotnet test:运行指定测试项目的所有测试,--no-build直接使用已编译的产物;--logger参数生成JUnit格式报告,方便GitLab在流水线页面展示测试通过率、失败用例等信息。
  • 测试项目依赖:确保bUnitTests.csproj中已正确引用必要的包:
    <PackageReference Include="bunit" Version="1.24.2" /> <!-- 替换为你的bUnit版本 -->
    <PackageReference Include="xunit" Version="2.6.6" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.6" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
    

3. 验证本地运行

在本地PowerShell/CMD中进入项目根目录,执行以下命令验证测试能否正常运行:

dotnet test bUnitTests/bUnitTests.csproj

如果本地能正常执行,GitLab CI中也能正常运行。

内容的提问来源于stack exchange,提问作者Brian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 15:55:12