首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用dotnet vstest仅运行以前失败的测试

在使用 .NET 的 vstest 工具时,如果你想要仅运行以前失败的测试,你可以利用测试结果的输出文件(通常是 .trx 文件)来筛选这些测试。以下是如何操作的步骤:

基础概念

  • vstest: 这是 Visual Studio 的测试执行引擎,用于运行单元测试、集成测试等。
  • .trx 文件: 这是测试结果的存储格式,包含了测试的详细信息,包括成功和失败的测试。

相关优势

  • 针对性: 只运行失败的测试可以节省时间,特别是当测试套件很大时。
  • 效率: 可以快速定位和修复问题,而不必重新运行所有测试。

类型与应用场景

  • 单元测试: 在开发过程中,当修改了代码后,通常只需要重新运行失败的单元测试。
  • 集成测试: 在持续集成环境中,可以设置只运行上次失败的集成测试。

如何运行以前失败的测试

  1. 生成测试结果文件: 首先,你需要运行一次测试并生成 .trx 文件。这可以通过命令行使用 vstest.console.exe 来完成。
代码语言:txt
复制
vstest.console.exe YourTestAssembly.dll /resultsfile:TestResults.trx
  1. 分析失败的测试: 使用工具如 trx2csv.trx 文件转换为 CSV 格式,以便分析哪些测试失败了。
代码语言:txt
复制
trx2csv TestResults.trx > FailedTests.csv
  1. 提取失败的测试名称: 从 CSV 文件中提取失败的测试名称。
  2. 运行失败的测试: 使用 vstest.console.exe 并通过 /TestCaseFilter 参数指定失败的测试名称来运行它们。
代码语言:txt
复制
vstest.console.exe YourTestAssembly.dll /TestCaseFilter:"FullyQualifiedName=Namespace.ClassName.MethodName"

示例代码

假设你已经有了一个包含失败测试名称的文本文件 FailedTests.txt,每行一个测试名称,你可以使用以下 PowerShell 脚本来运行这些测试:

代码语言:txt
复制
$failedTests = Get-Content FailedTests.txt
foreach ($test in $failedTests) {
    vstest.console.exe YourTestAssembly.dll /TestCaseFilter:"$test"
}

注意事项

  • 确保 .trx 文件是最新的,它应该反映了最近一次测试运行的结果。
  • 如果测试名称中有特殊字符,可能需要对它们进行适当的转义。

解决问题的方法

如果你在运行失败的测试时遇到问题,可以检查以下几点:

  • 确保测试名称正确无误。
  • 确保测试环境与上次运行测试时的环境一致。
  • 查看详细的错误输出,以便更好地理解失败的原因。

通过这种方式,你可以有效地专注于修复那些未能通过的测试,从而提高开发和调试的效率。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • ASP.NET Core基础补充08

    适用于任何类型的Web应用程序的.NET Core CLI命令使用进程外托管,即它使用Kestrel服务器运行该应用程序。 到目前为止,我们创建的所有应用程序都使用Visual Studio。...). test: Run unit tests using the test runner specified in a .NET project(使用.NET项目中指定的测试运行器运行单元测试). tool...Engine (VSTest) commands(运行Microsoft测试引擎(VSTest)命令) 项目修改命令 add package: Adds a package reference to...(用于安装.NET Core CLI工具和共享运行时的脚本) 使用.NET Core CLI命令创建一个新项目 让我们在不使用Visual Studio的情况下,使用命令行界面创建,还原,构建和运行...使用 .NET CLI 命令运行项目 要运行 .NET Core 项目,我们需要使用**“dotnet run”**命令,如下所示:在这里,你可以看到它显示输出 Hello World!

    17310

    dotnet 使用 MSTestRunner 将单元测试制作为独立可执行文件

    以往的单元测试都是不能单独作为一个独立的可执行文件跑的,需要在 VisualStudio 或 VSTest 或 dotnet test 里面运行。...这就限制了运行单元测试的环境了,有时候开发者可能期望在无 SDK 或开发环境下执行单元测试,这时就可以用到本文介绍的 MSTestRunner 功能,将单元测试制作为独立可执行文件 将单元测试制作为可执行文件...,运行此可执行文件即可运行单元测试。...可执行文件可以作为独立框架发布的方式,如此可以在一些纯净的环境里面运行,或者是将单元测试打包分发给测试同事,请测试同事在大批量的设备上进行执行。...,现有的性能调试工具基本都对独立应用程序支持的非常好,通过将单元测试制作为独立可执行文件可以更加方便与现有的性能调试工具进行对接 以下将和大家介绍如何利用 MSTestRunner 的功能,将单元测试制作为独立可执行文件

    23810

    dotnet test

    有关如何使用 NuGet 源的信息,请参阅 dotnet restore 文档。 工作负载清单下载 运行此命令时,它将为工作负载启动播发清单的异步后台下载。...若要从 .NET 5.0 或更高版本上运行的本机应用程序收集故障转储,可以通过将 VSTEST_DUMP_FORCEPROCDUMP 环境变量设置为 1 来强制执行 Procdump 的使用。...若要获取使用选择性单元测试筛选的其他信息和示例,请参阅运行选择性单元测试。 -?|-h|--help 打印出有关如何使用命令的说明。 --interactive 允许命令停止并等待用户输入或操作。...路径上 dotnet.exe 的位数是用于运行测试的内容。 有关更多信息,请参见以下资源: 使用 .runsettings 文件配置单元测试。...示例 运行当前目录所含项目中的测试: dotnet test 运行 test1 项目中的测试: dotnet test ~/projects/test1/test1.csproj 在当前目录运行项目中的测试

    3.1K20

    .NET周刊【2月第2期 2024-02-11】

    用户还可通过快捷键或菜单过滤到仅文本结果,并使用匹配大小写、整个单词或正则表达式进行搜寻。这项功能目前在预览版中可用,将在17.9的主版本中作为预览功能提供。微软希望用户继续通过开发者社区提供反馈。...,能独立运行MSTest测试,增加了测试的可携带性和速度,简化了测试运行的环境需求。...在不需要dotnet test、vstest.console或Visual Studio的情况下运行测试,兼容适用于功率或存储有限设备。...此外也支持docker容器内的应用程序测试,易于在不同环境下重现和调试测试失败的情况。...包括Docker无法安装、Docker Engine启动失败、引用错误等问题,并提供详细的解决步骤。同时,还提供了.NET支持的Docker版本信息及如何获取官方.NET镜像的方法。

    17910

    【翻译】.NET 💜 GitHub Actions: .NET 的 GitHub Actions 简介

    在这篇文章中,您将了解 GitHub Actions 如何改善您的 .NET 开发体验和团队生产力。我将向您展示如何使用它们通过工作流组合来自动化常见的 .NET 应用程序开发场景。...GitHub 状态检查 使用工作流的主要好处之一是定义可以确定性地使构建失败的条件状态检查。...有关详细信息,请参阅dotnet 构建 run: dotnet test 运行项目或解决方案的测试。...有关详细信息,请参阅dotnet 测试 一些steps依赖 GitHub Actions 并使用uses语法引用它们,而另一些则使用run命令。...这只是有关使用 .NET 的 GitHub Actions 的博客的开始。在以后的文章中,我将展示如何使用 .NET 创建 GitHub Actions。

    87520

    4.通过.NET Core CLI创建RazorPage示例应用程序

    接下来,在EnvTest文件夹中运行下面的命令来编译代码并运行测试程序。 dotnet run 这个命令将编译并运行项目。如果一切顺利,那么你应该会看到如下输出 Docker基础学习!...如果这都还不行,那就尝试删除所有其他版本的.NET Core,仅保留.NET 3.1 的 SDK。...如果其他方法都失败了,而你又不能确定问题的原因,你可以前往QA地址:http://code.52abp.com/52abp/qa/yoyomooc 我会尽力帮助你。...现在创建一个简单的 ASP.NET Core MVC 项目,作为我们的示例项目来练习使用容器。...Blazor 的内置模板命令如下: dotnet new blazorserver --language C# --auth None --framework netcoreapp3.1 当然您可以前往微软的官方网站进行查看更多的命令内容

    1.3K20

    Macbook(M1版)的用户看过来,.net 6 Preview 6支持Apple Silicon for macOS

    也是节省空间的好选择 l dotnet工作负载修复-重新安装以前安装的所有工作负载 如果因为网络连接不好导致安装失败,就可以解决这个问题。...在以前的预览中,我们添加了以下命令: dotnet workload install-安装工作负载 dotnet workload list-列出已安装的工作负载 dotnet workload...以下MSBuild属性演示如何使用crossgen2启用预编译。 ? 库:Sync-over-async的性能改进 Sync-over-async是阻塞工作的一种常见类型。...线程注入的速度过慢可能会延迟其他排队工作的运行,并且可能会延迟饥饿问题的解决。 当Sync-over-async是线程池工作线程上发生的唯一一种阻塞线程时,此更改在默认情况下提高了线程注入速率。...更多改进: Windows x86 Windows x64 通用改进 代码质量 消除冗余的“测试”指令 https://github.com/dotnet/runtime/pull/

    1.2K30

    CA1822:将成员标记为 static

    发出非虚拟调用网站将禁止在运行时检查每个调用,以确保当前对象指针为非 NULL。 这会使性能敏感的代码的性能得到显著提高。 在某些情况下,访问当前对象实例失败表示存在正确性问题。...如何解决冲突 将成员标记为静态(在 Visual Basic 中为共享),或在方法主体中使用“this”/“Me”(如果适用)。...何时禁止显示警告 对于以前发布的代码,可禁止显示此规则的警告,因为修复是一项中断性变更。 配置代码以进行分析 使用下面的选项来配置代码库的哪些部分要运行此规则。...包含特定的 API 图面 你可以根据代码库的可访问性,配置要针对其运行此规则的部分。...例如,若要指定规则应仅针对非公共 API 图面运行,请将以下键值对添加到项目中的 .editorconfig 文件: dotnet_code_quality.CAXXXX.api_surface = private

    67500

    dotnet 使用 Refasmer 从现有的 DLL 里面导出公开的成员组装出新的仅作为引用用途的程序集

    Refasmer 工具是是一个 dotnet tool 工具,安装非常方便,使用如下代码进行安装 dotnet tool install -g JetBrains.Refasmer.CliTool 接着咱用一个现有的...DLL 来测试一下用途,如我有一个叫 Lindexi.dll 文件,我采用如下命令行进行转换为仅作为引用用途的程序集 refasmer Lindexi.dll 输入上面代码之后,将会在相同的文件夹下生成...或者用在某些超大项目上,用于支持超大解决方案里面单个项目的独立构建 和 dotnet 自带的 ProduceOnlyReferenceAssembly 不同之处在于 Refasmer 可以从 DLL 里面导出仅作为引用用途的程序集...NuGet 重新发布的,否则后续将会因为找不到对应的 DLL 而让运行时失败。...可以从下面了解如何拿到本文源代码 本文所有代码放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码

    60420

    CA2000:丢失范围之前释放对象

    如何解决冲突 要解决此规则的冲突,需在对对象的所有引用超出范围之前,在对象上调用 Dispose。...如果构造函数仅由一个异常处理程序保护并嵌套在 using 语句的获取部分,则外部构造函数中的失败会导致始终不会关闭嵌套构造函数所创建的对象。...;也就是说,释放对象的责任将转移到在方法中创建并返回给调用方的另一个对象或包装器 配置代码以进行分析 使用下面的选项来配置代码库的哪些部分要运行此规则。...例如,若要指定规则不应针对名为 MyType 的类型中的任何代码运行,请将以下键值对添加到项目中的 .editorconfig 文件: dotnet_code_quality.CAXXXX.excluded_symbol_names...例如,若要指定规则不应针对名为 MyType 的类型及其派生类型中的任何代码运行,请将以下键值对添加到项目中的 .editorconfig 文件: dotnet_code_quality.CAXXXX.excluded_type_names_with_derived_types

    89330

    dotnet 调试应用启动闪退的方法

    但是当前是在调试启动失败,启动失败可能是库的锅,需要调试发布的程序集,推荐关闭仅我的代码调试。...的帮助下快速定位到为什么启动失败 但是如果应用只是在用户的设备上才失败,那就没那么好玩了,接下来将告诉大家如何调试用户端的应用启动失败 使用 dnSpy 调试应用启动失败 在用户的设备上,如果应用启动失败了...相当于在用户端跑一个轻巧的 VisualStudio 调试工具 支持 dotnet 6 版本的 dnSpy 下载地址请看 支持 dotnet 6 的 dnSpy 神器版本 调试的思路和上文的使用 VisuslStudio...大部分时候都是先运行 ProcDump 工具,然后再启动应用,这样 ProcDump 相当于监控应用启动失败或退出。...如果 VisualStudio 无法帮到你,那就只能换成 WinDbg 啦,不过这又是另外一个故事了 大家可以尝试使用我放在 github 的代码进行测试 更多请看 dotnet 代码调试方法

    1.8K10

    教程:使用 .NET CLI 安装和使用 .NET 全局工具

    本文适用于: ✔️ .NET Core 2.1 SDK 及更高版本 本教程介绍如何安装和使用全局工具。 使用在本系列的第一个教程中创建的工具。 先决条件 完成本系列的第一个教程。...使用该工具作为全局工具 通过运行 microsoft.botsay 项目文件夹中的 dotnet tool install 命令,从包中安装该工具 : dotnet tool install --global...--add-source 参数指示 .NET CLI 临时使用 ./nupkg 目录作为 NuGet 包的附加源数据源。 为包提供了唯一名称,以确保它仅位于 ....通过运行 dotnet tool uninstall 命令来删除该工具: dotnet tool uninstall -g microsoft.botsay 使用该工具作为自定义位置中安装的全局工具 从包中安装该工具...后续步骤 在本教程中,已将工具作为全局工具安装和使用。 有关如何安装和使用全局工具的详细信息,请参阅管理全局工具。 若要安装和使用与本地工具相同的工具,请转到下一教程。 安装和使用本地工具

    1.3K30
    领券