BDD - Specflow BDD 执行测试,生成测试报告 NUnit 篇

本文介绍如何使用NUnit.Console执行SpecFlow测试,并生成测试报告。通过具体命令示例,详细展示了NUnit.Console的安装及使用方法,以及如何利用Specflow2生成可读性强的HTML格式测试报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

前面有介绍 Specflow 基于不同 Unit Test Provider (Xunit,MSTest,NUnit,SpecRun) 的实践系列:

BDD - SpecFlow BDD 测试实践 SpecFlow + SpecRun
BDD - SpecFlow BDD 测试实践 SpecFlow + Xunit
BDD - SpecFlow BDD 测试实践 SpecFlow 模板
BDD - SpecFlow BDD 测试实践 SpecFlow + MSTest
BDD - SpecFlow BDD 测试实践 SpecFlow + NUnit

上述实践,我们都是通过 Test Explore 界面来执行测试的,其中 BDD - SpecFlow BDD 测试实践 SpecFlow 模板 用到 SpecFlow+ LivingDoc 生成测试报告,BDD - SpecFlow BDD 测试实践 SpecFlow + SpecRun 运行后会自动生成测试报告,剩下 NUnit/MSTest/Xunit 运行测试时不会自动生成测试报告。

参考 Specflow Reporting 主要基于两种 Unit Test Provider,NUnit 和 MsTest。今天来了解一下用 NUnit 命令执行测试以及测试报告的生成。

Nunit 执行测试

Nunit 提供了不同的 Runner,其中 Console Runner, nunit-console.exe 命令是用于批处理执行的。

安装 NUnit.Console

要用 nunit-console.exe 命令,就需要安装 NUnit.Console NuGet 包。我们还是基于 BDD - SpecFlow BDD 测试实践 SpecFlow + NUnit 这个项目装 NUnit.Console

在这里插入图片描述

packages.config 文件中有多出这些依赖包:

在这里插入图片描述
NUnit.Console 命令所在目录在 C:\Users\userName\ .nuget\packages\nunit.consolerunner\3.15.2\tools

在这里插入图片描述

执行 NUnit.Console 命令

NUNIT3-CONSOLE [inputfiles] [options]

可通过 nunit3-console.exe -h 了解更多细节。

在这里插入图片描述

执行下面命令:
nunit3-console.exe --labels=All --out=C:\Work\SpecFlowDemo\TestResult\TestResult.txt “–result=C:\Work\SpecFlowDemo\TestResult\TestResult.xml;format=nunit2” C:\Work\SpecFlowDemo\SpecflowNUnit\bin\Debug\SpecflowNUnit.dll

out 参数是保存 txt 测试输出,result 参数是保存具体的测试结果

在这里插入图片描述

执行结果:

在这里插入图片描述

Specflow 生成测试报告

上面 NUnit.Console 命令产生的两个输出文件,还不是我们想要的测试报告,Specflow 提供生成可接受的 html 格式的测试报告,但是只适用于 Specflow 2 版本,Specflow 3 已经移除了此功能。 specflow.exe 用于生成测试报告,只有 Specflow 2 有这个命令,所以需要装 Specflow 2 版本。在 BDD - SpecFlow BDD 测试实践 SpecFlow + Xunit 项目中装了 Specflow 2.4 版本,所以我们就可以用这个版本了来生成测试报告。

在这里插入图片描述
specflow.exe 所在目录在 C:\Users\userName\ .nuget\packages\specflow\2.4.0\tools

在这里插入图片描述
可通过 specflow.exe – help 命令了解 specflow.exe 命令。
在这里插入图片描述
执行命令生成测试报告:
specflow.exe nunitexecutionreport --ProjectFile C:\Work\SpecFlowDemo\SpecflowNUnit\SpecflowNUnit.csproj --xmlTestResult C:\Work\SpecFlowDemo\TestResult\TestResult.xml --testOutput C:\Work\SpecFlowDemo\TestResult\TestResult.txt --OutputFile C:\Work\SpecFlowDemo\TestResult\CustomSpecflowTestReport.html

其中 --xmlTestResult 参数是 nunit-console 生成的 xml 测试结果, --testOutput 参数是 nunit-console 生成的 txt 测试结果, --OutputFile 参数是 specflow 生成的 html 测试报告。

在这里插入图片描述

html 测试报告生成了

在这里插入图片描述

html 测试报告内容:

在这里插入图片描述

对于非 NUnit test

对于非 NUnit test (MSTest, SpecRun, Xunit), 运行 NUnit console 命令会产生错误“ Either assembly contains no tests or proper test driver has not been found.NUnit console 只运行于 NUnit test。

对于 MSTest BDD - SpecFlow BDD 测试实践 SpecFlow + MSTest

在这里插入图片描述

对 SpecRun BDD - SpecFlow BDD 测试实践 SpecFlow + SpecRun

在这里插入图片描述

对于 Xunit BDD - SpecFlow BDD 测试实践 SpecFlow + Xunit

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值