如何基于.NET 6.0 XUnit生成Allure测试报告?
基于.NET 6.0 XUnit生成Allure测试报告的实操步骤
1. 安装依赖NuGet包
直接通过dotnet CLI或NuGet包管理器安装Allure对XUnit的适配包:
dotnet add package Allure.Xunit dotnet add package Allure.Commons
2. 配置Allure参数
在测试项目根目录新建allureConfig.json文件,填入基础配置:
{ "allure": { "directory": "allure-results", "title": ".NET 6 XUnit测试报告", "clean": true } }
记得将该文件的复制到输出目录属性设置为「如果较新则复制」,保证测试运行时能读取到配置。
3. 编写带Allure标记的测试用例
在测试类和方法上添加Allure特性,用于分类和描述测试内容,示例代码:
using Xunit; using Allure.Xunit; using Allure.Xunit.Attributes; [AllureSuite("订单模块测试")] public class OrderTests { [Fact] [AllureStory("创建订单")] [AllureDescription("验证正常创建支付订单的流程")] public void CreateOrder_Success() { // 测试逻辑示例 var order = new Order { Id = "ORD001", Amount = 99.9m }; Assert.Equal("ORD001", order.Id); } [Fact] [AllureStory("取消订单")] [AllureDescription("验证取消已支付订单的场景")] public void CancelPaidOrder_Failed() { // 测试逻辑示例 var result = OrderService.CancelOrder("ORD002"); Assert.False(result); } }
还可以通过AllureApi.Step()添加测试步骤,让报告更清晰:
[Fact] [AllureStory("查询订单")] public void QueryOrder_DetailsMatch() { AllureApi.Step("1. 构造查询参数"); var queryParam = new OrderQuery { OrderId = "ORD001" }; AllureApi.Step("2. 调用查询接口"); var order = OrderService.QueryOrder(queryParam); AllureApi.Step("3. 验证返回结果"); Assert.NotNull(order); Assert.Equal(99.9m, order.Amount); }
4. 生成Allure原始结果文件
运行XUnit测试,Allure会自动在项目输出目录生成allure-results文件夹,里面是JSON格式的测试结果:
dotnet test --configuration Release
如果测试正常执行,allure-results里会出现对应数量的结果文件。
5. 生成并查看Allure可视化报告
首先需要安装Allure命令行工具(确保添加到系统环境变量),然后执行以下命令:
- 生成静态报告:
allure generate allure-results -o allure-report --clean
- 启动本地服务查看报告:
allure open allure-report
执行后会自动打开浏览器,展示包含测试统计、用例详情、步骤记录的美观Allure报告。
常见问题
- 如果
allure-results为空:检查测试是否正常运行,allureConfig.json是否正确复制到输出目录; - 报告显示异常:确保Allure命令行工具版本与NuGet包版本兼容,建议使用最新稳定版;
- 需添加附件:可以用
AllureApi.AddAttachment()方法添加截图、日志等附件,丰富报告内容。
内容的提问来源于stack exchange,提问作者Mufasa
相关产品推荐
相关产品推荐

