VS Code中基于MSTest编写和运行测试

news2024/11/15 7:27:13

MS Test(Microsoft Test Framework)是微软提供的一个用于.NET应用程序的单元测试框架。以下是一个使用MS Test进行单元测试的示例,该示例将涵盖测试的基本步骤和概念。

项目搭建

在VS Code中开发C#时,创建solution(解决方案)和project(项目)的步骤相对直接,主要依赖于.NET CLI(命令行接口)和VS Code的扩展功能。以下是详细的步骤:

创建Solution

  1. 打开VS Code
    • 启动VS Code,并创建一个新的工作区或打开一个已存在的文件夹作为工作区。
  2. 打开终端
    • 在VS Code中,通过`Ctrl+``(反引号)打开集成的终端。
  3. 创建Solution
    • 使用.NET CLI命令dotnet new sln来创建一个新的解决方案。您可以通过-n参数指定解决方案的名称,但如果不指定,则默认为当前文件夹的名称加上.sln后缀。例如:
dotnet new sln -n MyCSharpSolution
    如果不指定`-n`,则在当前目录下生成一个名为`MySolution.sln`的解决方案文件(假设当前文件夹名为MySolution)。

创建Project

  1. 创建项目
    • 在同一终端中,使用dotnet new命令来创建一个新的项目。可以根据需要选择不同的项目模板,如console(控制台应用程序)、classlib(类库)等。例如,创建一个控制台应用程序:
        dotnet new console -n MyProject -o ./MyProject
    这里`-n`指定了项目名称,`-o`指定了项目目录。
  1. 将项目添加到Solution
    • 使用dotnet sln add命令将新创建的项目添加到解决方案中。例如:
dotnet sln MyCSharpSolution.sln add ./MyProject/MyProject.csproj
    这里`MySolution.sln`是解决方案文件的名称,`./MyProject/MyProject.csproj`是项目文件的路径。

配置和调试

  1. 配置调试
    • VS Code可能会自动为C#项目生成launch.jsontasks.json文件,这些文件用于配置调试和编译任务。可以在.vscode文件夹中找到这些文件,并根据需要进行修改。
  2. 启动调试
    • 在VS Code中,使用侧边栏中的“运行和调试”视图,点击绿色的“开始调试”按钮或按F5键来启动调试会话。确保在launch.json中正确配置了调试配置。
  3. 编写和测试代码
    • 现在,可以在项目中编写C#代码,并使用VS Code的调试功能来测试代码。

测试示例场景

假设有一个简单的类Calculator,它包含一个加法方法Add,现在需要为这个加法方法编写单元测试。

在项目中添加Calculator类,内容如下:

using System;
namespace Calculator
{
    public class Calculator
    {
        public int Add(int a, int b)
        { return a + b; }
    }
}

创建测试项目

可以使用命令行的方式创建测试项目:
在解决方案中,添加一个新的MSTest测试项目。

  dotnet new console -n MyProject.Tests -o ./MyProject.Tests

将测试项目添加到 Solution

dotnet sln MyCSharpSolution.sln add ./MyProject.Tests/MyProject.Tests.csproj

这里推荐在VS Code的Solution 中直接添加MS Test的项目,操作方式是在Solution 上点击 Create Project 的按钮,接着在命令框中选择MSTest Test Project.

在这里插入图片描述

步骤 添加项目引用

将测试项目与被测项目(即包含Calculator类的项目)关联起来。
在左侧的 “SOLUTION EXPLORER”选中测试项目,右击“依赖项”或“引用”,选择“添加项目引用”,
在这里插入图片描述

选择原项目
在这里插入图片描述

编写测试类和方法

在测试项目中,创建一个新的测试类,并使用MSTest的[TestClass][TestMethod]属性来标记测试类和测试方法。

namespace MyProject.Tests;

using Microsoft.VisualStudio.TestTools.UnitTesting;
using CalculatorNamespace; // 引入被测项目的命名空间    


[TestClass]
public class CalculatorTests
{
    [TestMethod]
    public void Add_TwoNumbers_ReturnsCorrectSum()
    {
        // Arrange          
        Calculator calculator = new Calculator();
        int a = 5; int b = 7;
        int expected = 12;                // Act     
        int actual = calculator.Add(a, b);
        // Assert           
        Assert.AreEqual(expected, actual, "The sum of 5 and 7 should be 12.");
    }
}

步骤 5: 运行测试

在Visual Studio中,你可以使用“测试资源管理器”来运行和查看测试结果。右击测试方法或测试类,选择“运行选中的测试”或“运行所有测试”。

在这里插入图片描述

在 Test Result 可以看到运行的结果。

在这里插入图片描述

命令行运行测试

如果希望在命令行中运行测试,可以使用dotnet test命令(对于.NET Core或.NET 5/6/7等较新版本的项目)。首先,确保你的测试项目是一个.NET Core或.NET SDK风格的项目,并且已经包含了必要的NuGet包(如Microsoft.NET.Test.SdkMSTest.TestAdapterMSTest.TestFramework)。

打开命令行工具(如CMD、PowerShell或终端),导航到包含测试项目文件的目录,然后运行:

dotnet test

这将编译测试项目,运行所有测试,并显示测试结果。
在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2057769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI绘画Stable Diffusion画全身图总是人脸扭曲?ADetailer插件实现一键解决!商业级AI人物生成教程

大家好,我是灵魂画师向阳 你是否遇到过SD生成的人物脸部扭曲、甚至令人恶心的情况?也曾感到束手无策?别担心,这份教程专为你而来。 在使用SD生成人物全身照时,你可能经常发现人物的脸部会出现扭曲问题。这是因为人物…

整体思想以及取模

前言&#xff1a;一开始由于失误&#xff0c;误以为分数相加取模不能&#xff0c;但是其实是可以取模的 这个题目如果按照一般方法&#xff0c;到达每个节点再进行概率统计&#xff0c;但是不知道为什么只过了百分之十五的测试集 题目地址 附上没过关的代码 #include<bits…

如何在IIS中为typecho博客启用HTTPS访问

在上篇文章中&#xff0c;介绍了如何安装typecho博客系统&#xff0c;默认是没有启用https访问的&#xff0c;这篇文章介绍如何 在IIS中开启 https访问。 开启https访问需要两个步骤&#xff1a; 1、申请 一个ssl证书&#xff0c;我这里以阿里云上面的申请流程为例。其它云服务…

[Linux网络】基本网络命令socket编写TCP应用层实现简易计算器

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#xff1a;我们在上篇博客中学习了使用socket套接字完成了UDP的网络编程&#xff0c;今天我们继续使用套接字完成TCP的学习。 首先我们先来了解一些网络指令&#xff0c;让大家可以在实现网络编程后查看一些与网…

勇闯机器学习(第五关--中文文本特征提取)

以下内容皆为原创&#xff0c;制作实属不易&#xff0c;请点点关注和赞赞❥(^_^) 第一关&#xff1a;机器学习概念和流程http://t.csdnimg.cn/IuHh4第二关&#xff1a;数据集的使用http://t.csdnimg.cn/2jsdi第三关&#xff1a;特征工程-字典特征提取http://t.csdnimg.cn/ZpMt…

[数据集][目标检测]铁轨缺陷检测数据集VOC+YOLO格式4020张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4020 标注数量(xml文件个数)&#xff1a;4020 标注数量(txt文件个数)&#xff1a;4020 标注…

高性能web服务器2——Nginx概述

Nginx 概述 Nginx 是一款广泛使用的高性能 Web 和反向代理服务器&#xff0c;以其出色的并发处理能力和低内存消耗而闻名。自 2004 年首次发布以来&#xff0c;Nginx 已经成为许多企业和组织的首选 Web 服务器和负载均衡解决方案。本文将对 Nginx 进行一个全面的概述&#xff…

探索Qotom Q51251OPS迷你电脑:功能与广泛应用

Qotom Q51251 OPS&#xff08;开放可插拔规范&#xff09;迷你电脑是一款设计紧凑且功能强大的设备&#xff0c;旨在满足不同领域的多样化需求。基于英特尔Core i5-12450H Alder Lake H处理器&#xff0c;这款设备不仅具备出色的计算性能&#xff0c;还提供了丰富的连接选项&am…

电路板中的MARK点

什么是mark点&#xff0c;什么情况下有mark点 Mark点的种类 局部mark点&#xff1a;针对那些 引脚数量众多 引脚间距非常紧凑的元器件 比如说QFT封装 BGA封装 MARK点的作用 不论是 拼版还是全局mark 一般都会放上2-3个点 第三个mark点一般用于比较大的电路板或者是比较大的拼…

接口加密解决方案,Python的各种加密实现!

01、前言 在现代软件开发中&#xff0c;接口测试已经成为了不可或缺的一部分。随着互联网的普及&#xff0c;越来越多的应用程序都采用了接口作为数据传输的方式。接口测试的目的是确保接口的正确性、稳定性和安全性&#xff0c;从而保障系统的正常运行。 在接口测试中&…

TXT 记录解析怎么做?

在当今数字化的时代&#xff0c;网络技术的应用越来越广泛&#xff0c;而域名系统&#xff08;DNS&#xff09;则是网络通信中至关重要的一部分。TXT 记录作为 DNS 中的一种记录类型&#xff0c;有着特定的用途和解析方法。 那么&#xff0c;TXT 记录解析究竟该怎么做呢&#…

学习node.js 七 http 模块

目录 http模块 创建http服务器 反向代理 代码实现 邮件服务 案例实现&#xff1a; 动静分离 代码实现 http模块 “http” 模块是 Node.js 中用于创建和处理 HTTP 服务器和客户端的核心模块。它使得构建基于 HTTP 协议的应用程序变得更加简单和灵活。 创建 Web 服务…

高性能企业WEB服务器

一&#xff1a;nginx的编译安装&#xff1a; 1.1官方源下载地址&#xff1a; https://nginx.org/en/download.html 1.1.1下载编译所需要的软件&#xff1a; [rootnginx nginx-1.24.0]# dnf install gcc pcre-devel zlib-devel openssl-devel -y 编译&#xff1a; 验证版本及编…

DHU 二维数组 阵列

输出范例给的不工整 思路及代码 写的不优雅 分为三部分 枚举输出 n 1-11 规律求出 n > 12 的矩阵 输出需要的矩阵&#xff0c;把每一行存成一个字符串&#xff0c;方便左右对齐 #include<iostream> #include<cmath> #include<iomanip> #include&l…

C++ 设计模式(4. 建造者模式)

建造者模式&#xff08;也被成为生成器模式&#xff09;&#xff0c;是一种创建型设计模式&#xff0c;软件开发过程中有的时候需要创建很复杂的对象&#xff0c;而建造者模式的主要思想是将对象的构建过程分为多个步骤&#xff0c;并为每个步骤定义一个抽象的接口。具体的构建…

计算机毕业设计 公寓出租系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

消防认证-火灾显示盘GB 17429-2011

一、消防认证 消防认证是指消防产品符合国家相关技术要求和标准&#xff0c;且通过了国家认证认可监督管理委员会审批&#xff0c;获得消防认证资质的认证机构颁发的证书&#xff0c;消防产品具有完好的防火功能&#xff0c;是住房和城乡建设领域验收的重要指标。 二、认证依据…

软考高项—项目采购管理总结

采购管理包括规划采购管理、实施采购和控制采购3个过程。 管理领域管理过程定义作用频率项目采购管理规划采购管理记录项目采购决策、明确采购方法&#xff0c;及识别潜在卖方的过程。确定是否从项目外部获取货物和服务&#xff0c;如果是&#xff0c;则还要确定将在什么时间、…

运维学习————nginx2-配置详解及负载均衡

目录 一、配置文件详解 1.1、结构 1.2、重要配置解释 1.3、详细配置 全局配置 Events HTTP 服务器配置 server虚拟主机配置 location URL匹配配置 1.4、完整配置 二、负载均衡 2.1、概念 2.2、集群规划及实现 2.3、具体实现 2.3.1、克隆 2.3.2、修改tomcat1配…