news 2026/7/22 16:33:47

Boxed.DotnetNewTest:.NET模板测试自动化的终极解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Boxed.DotnetNewTest:.NET模板测试自动化的终极解决方案

Boxed.DotnetNewTest:.NET模板测试自动化的终极解决方案

【免费下载链接】Framework.NET Core Extensions and Helper NuGet packages.项目地址: https://gitcode.com/gh_mirrors/framework8/Framework

Boxed.DotnetNewTest是一个专为dotnet new项目模板打造的单元测试框架,它能帮助开发者轻松实现模板测试的自动化,显著提升.NET项目模板的质量与可靠性。

🌟 核心功能:一站式模板测试体验

Boxed.DotnetNewTest提供了完整的模板测试生命周期管理,主要功能包括:

1️⃣ 模板安装与项目创建

  • 从指定目录安装基于dotnet new的项目模板
  • 在临时目录中快速创建模板项目,避免干扰开发环境

2️⃣ 构建流程自动化

  • 自动执行dotnet restore命令,验证依赖项配置
  • 运行dotnet builddotnet publish命令,检查项目构建完整性

3️⃣ 应用测试支持

  • 对ASP.NET Core项目模板提供dotnet run支持
  • 内置HttpClient,可直接调用应用接口进行功能测试

🚀 快速上手:简单三步实现模板测试

第一步:安装Boxed.DotnetNewTest

通过NuGet安装Boxed.DotnetNewTest包,为你的测试项目添加依赖:

Install-Package Boxed.DotnetNewTest

第二步:编写测试代码

创建测试类,使用Boxed.DotnetNewTest的API编写测试用例。以下是一个基本示例:

public class ApiTemplateTest { public ApiTemplateTest() => DotnetNew.Install<ApiTemplateTest>("ApiTemplate.sln").Wait(); [Fact] public async Task Run_DefaultArguments_IsSuccessful() { using (var tempDirectory = TempDirectory.NewTempDirectory()) { var project = await tempDirectory.DotnetNew("api", "DefaultArguments"); await project.DotnetRestore(); await project.DotnetBuild(); await project.DotnetRun( @"Source\DefaultArguments", async (httpClient, httpsClient) => { var httpResponse = await httpsClient.GetAsync("status"); Assert.Equal(HttpStatusCode.OK, httpResponse.StatusCode); }); } } }

第三步:运行测试

使用你喜欢的测试运行器执行测试,Boxed.DotnetNewTest会自动处理模板安装、项目创建、构建和测试的全过程。

💡 高级用法:参数化测试与自定义配置

参数化测试

通过[Theory][InlineData]特性,可以轻松实现多参数组合测试:

[Theory] [InlineData("StatusEndpointOn", "status-endpoint=true")] [InlineData("StatusEndpointOff", "status-endpoint=false")] public async Task RestoreAndBuild_CustomArguments_IsSuccessful(string name, params string[] arguments) { using (var tempDirectory = TempDirectory.NewTempDirectory()) { var dictionary = arguments .Select(x => x.Split('=', StringSplitOptions.RemoveEmptyEntries)) .ToDictionary(x => x.First(), x => x.Last()); var project = await tempDirectory.DotnetNew("api", name, dictionary); await project.DotnetRestore(); await project.DotnetBuild(); } }

临时目录管理

Boxed.DotnetNewTest提供了灵活的临时目录管理功能,确保测试环境的隔离与清洁:

  • TempDirectory.NewTempDirectory():创建标准临时目录
  • TempDirectory.NewShortTempDirectory():创建短路径临时目录,解决MSBuild 256字符路径限制问题

📦 项目结构与核心组件

Boxed.DotnetNewTest的核心代码位于Source/Boxed.DotnetNewTest/目录,主要组件包括:

  • DotnetNew:模板安装与项目创建的核心类
  • TempDirectory:临时目录管理,实现IAsyncDisposable接口
  • Project:项目对象,提供构建、运行等操作方法
  • ProjectExtensions:扩展方法类,提供DotnetRestoreDotnetBuild等便捷方法

📚 官方文档与资源

  • 详细文档:Documentation/Boxed.DotnetNewTest.md
  • 源代码:Source/Boxed.DotnetNewTest/
  • 测试示例:Tests/

🔧 如何贡献

如果你对Boxed.DotnetNewTest感兴趣,欢迎通过以下方式贡献:

  1. 克隆仓库:git clone https://gitcode.com/gh_mirrors/framework8/Framework
  2. 创建分支:git checkout -b feature/your-feature
  3. 提交更改:git commit -m "Add your feature"
  4. 推送分支:git push origin feature/your-feature
  5. 创建Pull Request

Boxed.DotnetNewTest为.NET模板开发提供了强大的测试支持,让模板质量保障变得简单高效。无论是个人开发者还是企业团队,都能从中受益,打造更可靠的.NET项目模板。

【免费下载链接】Framework.NET Core Extensions and Helper NuGet packages.项目地址: https://gitcode.com/gh_mirrors/framework8/Framework

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 16:33:29

Codex 工程化落地指南 01:产品形态与工程化使用模式

一&#xff1a;教程定位很多开发人员第一次接触 Codex&#xff0c;会把它理解为一个更强的代码补全工具&#xff1a;写一个用户注册接口。然后直接让 Codex修改项目。这种使用方式虽然可能快速生成代码&#xff0c;但很容易出现&#xff1a;没有先理解现有项目 没有确认功能边界…

作者头像 李华
网站建设 2026/7/22 16:31:17

Roblox Account Manager高级技巧:启用Multi Roblox实现多开游戏

Roblox Account Manager高级技巧&#xff1a;启用Multi Roblox实现多开游戏 【免费下载链接】Roblox-Account-Manager Application that allows you to add multiple accounts into one application allowing you to easily play on alt accounts without having to change acc…

作者头像 李华
网站建设 2026/7/22 16:30:06

铁沟浇注料如何选型降本?自流式与低水泥结合性能实测对比

在高炉连铸生产中&#xff0c;铁沟浇注料的材质性能直接决定炉役周期、修补频次与吨钢耐材成本。很多钢厂仅对比采购单价&#xff0c;忽略寿命、故障率、停机损失等隐性成本&#xff0c;导致长期运维居高不下。本文面向高炉工艺工程师、耐材采购及铁前技术负责人&#xff0c;通…

作者头像 李华
网站建设 2026/7/22 16:27:39

计算机毕业设计之学习助力平台的设计与实现

本系统为用户而设计制作学习助力平台&#xff0c;旨在实现学习助力平台智能化、现代化管理。本学习助力平台自动化系统的开发和研制的最终目的是将学习助力平台的运作模式从手工记录数据转变为网络信息查询管理&#xff0c;从而为现代管理人员的使用提供更多的便利和条件。使学…

作者头像 李华
网站建设 2026/7/22 16:26:23

7月急报:当功率预测误差超标,现货市场如何“用脚投票”?

老陈把7月前三周的交易结算单往桌上一拍,茶杯盖震得哐当响。他是云南某百万千瓦光伏电站的交易负责人,这个月光是偏差考核和现货低价段被迫出清的损失,加一块儿就吞掉了场站将近15%的预期利润。“天气预报明明报的是晴天,结果午后一场突发雷暴,实际出力比申报曲线低了将近…

作者头像 李华