个人可以做企业网站,宜昌最新消息今天,青海风控平台app,wordpress免费简约主题下载.net core 平台的测试框架有好几个可供选择#xff0c;内置的MSTest框架、NUnit框架以及强大好用的xUnit框架#xff0c;依托宇宙最强的编辑器Visual Studio#xff0c;可以开展非常友好的测试以及快乐的展示测试的结果。如果仅限于此#xff0c;那么这篇文章对你来说就是多… .net core 平台的测试框架有好几个可供选择内置的MSTest框架、NUnit框架以及强大好用的xUnit框架依托宇宙最强的编辑器Visual Studio可以开展非常友好的测试以及快乐的展示测试的结果。如果仅限于此那么这篇文章对你来说就是多余的不妨看看其他的东东但如果你想脱离VisualStudio的舒服圈独立产生可以自由发布和查看的HTML报告那么也许本篇文章能够帮你节约大量的尝试时间和彻底摆脱沮丧的心理而体验一场快乐的旅程。欢迎点赞 收藏 ⭐留言 如有错误敬请指正赐人玫瑰手留余香本文作者由webmote 原创首发于 【CSDN】作者格言生活在于折腾当你不折腾生活时生活就开始折腾你让我们一起加油1. 上手xUnit测试利用向导来生成一个新的xUnit测试项目即可。当然你也可以改造一个类库文件只需要在Project文件内引用这些类库即可。Project SdkMicrosoft.NET.SdkPropertyGroupTargetFrameworknet5.0/TargetFrameworkIsPackablefalse/IsPackable/PropertyGroupItemGroupPackageReference IncludeMicrosoft.NET.Test.Sdk Version16.11.0 /PackageReference Includexunit Version2.4.1 /PackageReference Includexunit.runner.visualstudio Version2.4.3IncludeAssetsruntime; build; native; contentfiles; analyzers; buildtransitive/IncludeAssetsPrivateAssetsall/PrivateAssets/PackageReferencePackageReference Includecoverlet.collector Version3.1.0IncludeAssetsruntime; build; native; contentfiles; analyzers; buildtransitive/IncludeAssetsPrivateAssetsall/PrivateAssets/PackageReference/ItemGroup/Project编写xUnit的测试用例超级简单只需要在类函数增加声明[Fact]即可。有关怎么编写单元测试可以参考《[关于单元测试你不知道的那些事]。(https://blog.csdn.net/codeex/article/details/120476609)》好了一切就绪开始我们的生成报告之旅。2. 代码覆盖率(Code Coverage)据微软的文档记载数据采集功能是在测试平台的15.3增加支持的其被集成在VS 2017 15.3 和dotnet-cli 2.0.0 上而有了数据采集扩展后就可以对会话和测试用例的一些事件就行分析了在之上进行扩展就有了覆盖率、圈复杂度等其他指标的度量了。使用如下命令收集覆盖率等的测试dotnet test --collect Code Coverage在 Windows 上可以使用 --collect “Code Coverage” 选项收集代码覆盖率。此选项将生成“.coverage”文件该文件可在 Visual Studio 2019 Enterprise中打开。当然在Linux平台这个命令的响应是数据收集器“Code Coverage”消息: 没有可用的代码覆盖率数据。代码覆盖率目前仅在 Windows 上受支持。。若要在 .NET Core 支持的任何平台上收集代码覆盖率请安装 Coverlet 并使用 --collect:“XPlat Code Coverage” 选项。第一小节给出的例子中已经安装了Coverlet包支持。因此我们可以执行下列命令产生Coverage.cobertura.xmldotnet test --collect:XPlat Code Coverage正在启动测试执行请稍候…总共 1 个测试文件与指定模式相匹配。附件:/root/dotnet/TestResults/93b42aca-c0e7-4e39-9253-c176506b3be0/coverage.cobertura.xml已通过! - 失败: 0通过: 1已跳过: 0总计: 1持续时间: 1 ms产生的结果存放在 TestResults文件夹的随机产生的GUID文件夹内。此处应该是 dotnet-cli 的限制收集的结果并不能指定为确切的文件夹因此不要费劲巴拉的找参数了。注意: 如果需要集成到自动化工具内需要考虑怎么从这个随机的文件夹把文件拷贝出来一种方式是利用shell的find/grep等命令搜索命令输出的文本找到完整的输出路径。有了这个xml文件以及ReportGenerator工具我们就可以产生测试覆盖率和圈复杂度的报告了。reportgenerator -reports:coverage.cobertura.xml -targetdir:report命令执行后产生一堆的html、css、js文件看到这么多文件不要慌让我们找到index.html打开它就可以了。酷炫的报告就这么赤果果的呈现在你的面前。3.测试结果报告Test Result测试结果报告说容易也容易说复杂那就非常的复杂了。为什么这么说呢主要是因为dotnet-cli已经自带了报告结果的输出。例如下面命令(在项目目录下)就输出了简单的统计结果dotnet testStarting test execution, please wait…A total of 1 test files matched the specified pattern.Passed! - Failed: 0, Passed: 3, Skipped: 0, Total: 3, Duration: 3 ms - MyXunitTest.dll (net5.0)是的如果这样就够了那么就非常简单是不是当然如果你还想要稍微详细点的输出也是支持的我们利用console来收集信息命令如下dotnet test -l console;verbositydetailed输出内容如下Starting test execution, please wait…A total of 1 test files matched the specified pattern.D:\github\xunit-xml2html\MyXunitTest\bin\Debug\net5.0\MyXunitTest.dll[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.31b45f5407b (64-bit .NET 5.0.11)[xUnit.net 00:00:00.24] Discovering: MyXunitTest[xUnit.net 00:00:00.27] Discovered: MyXunitTest[xUnit.net 00:00:00.27] Starting: MyXunitTest[xUnit.net 00:00:00.32] Finished: MyXunitTestPassed MyXunitTest.UnitTest1.Test2 [1 ms]Passed MyXunitTest.UnitTest1.Test1 [ 1 ms]Passed MyXunitTest.UnitTest1.Test3 [ 1 ms]Test Run Successful.Total tests: 3Passed: 3Total time: 1.1061 Seconds嗯到此为止仍然是利用dotnet-cli就可以完成的那如果非要一个html的报告那么问题就来了。3.1 TRX格式的价值TRX测试结果估计只有微软能看懂吧因此输出的结果可以通过VisualStudio打开。嗯是的可以分享给有VS安装的同事了。命令dotnet test --logger trx这个结果文件有一点值得称赞它不需要企业版的VS。GitHub网络上还有很多Trx转到html的工具由于年老失修都是残废之身了。例如 TrxerConsole 和 trx2html如果有喜欢折腾的朋友可以下来瞧瞧 trx2html 还是可以生成半截html的界面也很美观只可惜兼容性已经非常差了如果有达人维护下应该仍是个好工具。其他还有一些非主流几乎都是无用的。3.2 输出到xml文件既然TRX的路已经是断头路了那么我们只有重回xml这条大路上。关键的一刻来了。这里需要引入一个包 XunitXml.TestLogger 可以去github地址。它支持NUnit和Junit是非常好的xml生成工具。Xunit logger 产生的xml是xunit v2 format .命令如下dotnet test --logger:xunit;LogFilePathresult.xml输出的路径是指哪打哪。由xml生成到html不是一个难事了你可以自己写个转换工具。当然了这里有个现成的转换工具 xunit-xml2html。利用工具可以方便的把xml生成为html了。嗯嗯大功告成一切都已经搞定了。3.3 .net core 测试web时缺少 deps.json文件有时候项目会提示 threw exception: System.InvalidOperationException: Can’t find’[path removed]\TestRepro.Tests\bin\Debug\TestRepro.deps.json’.这时候可能是缺少引用这个包导致的这个错误很隐晦CI的时候出现率极高。Microsoft.AspNetCore.Mvc.Testing4. 小结.net core 测试的报告节讲完了你应该可以拿给领导一份满意的答卷了吧都看到这了还在乎点个赞吗都点赞了还在乎一个收藏吗都收藏了还在乎一个评论吗