登录
Ruby Test Explorer
分类:工具软件 访问:42 下载量:0

软件介绍

更新时间:2025-05-19

新的介绍内容:

Ruby Test Explorer示例截图

Ruby Test Explorer:VS Code中高效的Ruby测试工具

Ruby Test Explorer是专为VS Code设计的测试扩展,旨在提升您的Ruby测试效率。它支持RSpec和Minitest测试框架,提供一系列强大的功能,使您的测试流程更加流畅和高效。

安装方式:

您可以通过VS Code Marketplace轻松安装Ruby Test Explorer扩展,立即开始优化您的测试流程。

设置指南:

RSpec

要使用RSpec测试框架,您需要安装Ruby和rspec-core gem,并确保您的测试套件所需的所有依赖项已安装。该扩展已在Ruby 2.6和Rspec 3.8上进行了测试,但它应该适用于大多数最新版本的Ruby和所有3.6.0以上的Rspec 3.x版本(3.6.0之前的版本目前不支持,因为它们在JSON格式化器中没有暴露测试的id属性)。

默认情况下,您需要通过Bundler使用Gemfile安装rspec,并运行bundle install,否则bundle exec rspec将无法工作。如果您希望使用除bundle exec rspec之外的其他命令运行Rspec测试,可以通过rubyTestExplorer.rspecCommand设置来配置命令。

Minitest

要使用Minitest测试框架,您需要安装Ruby和minitest gem,并确保您的测试套件所需的所有依赖项已安装。该扩展已在Ruby 2.5和2.6以及Minitest 5.x上进行了测试。它应该适用于大多数最新版本的Ruby和Minitest。

功能亮点:

  • 支持RSpec和Minitest测试套件。
  • 自动检测测试框架(基于bundle list列出的gem),也支持手动覆盖。
  • 运行单个测试、完整测试套件或特定文件的测试。
  • 查看失败测试的输出(在测试资源管理器侧边栏中点击测试以打开输出视图)。
  • 在测试文件中显示失败测试的行装饰。
  • 显示测试状态,包括成功、失败和待定(在扩展中称为“跳过”)。
  • 测试套件运行时的实时测试状态更新。
  • 每个测试的文件位置信息。
  • 可配置的RSpec命令和spec/目录。
  • 可配置的Minitest命令和test/目录。
  • 测试层次结构信息。
  • 当测试目录中的文件发生变化时,自动重新加载测试套件信息。
  • 支持多根工作区。

配置选项:

Ruby Test Explorer提供了多种配置选项,允许您根据需求定制测试环境:

属性描述
rubyTestExplorer.logpanel是否将诊断日志写入输出面板。
rubyTestExplorer.logfile将诊断日志写入指定文件。
rubyTestExplorer.testFrameworknone、auto、rspec或minitest。默认值为auto,自动根据Bundler列出的gem检测测试框架。可以使用none禁用扩展功能,或在自动检测不正确时明确设置测试框架。
rubyTestExplorer.filePattern定义匹配测试文件的模式,例如["test.rb", "test.rb", "*_spec.rb"]。
rubyTestExplorer.debuggerHost定义调试器要连接的主机,例如127.0.0.1。
rubyTestExplorer.debuggerPort定义调试器要连接的端口,例如1234。
rubyTestExplorer.debugCommand定义如何运行rdebug-ide,例如rdebug-ide或bundle exec rdebug-ide。
rubyTestExplorer.rspecCommand定义运行RSpec测试的命令,例如bundle exec rspec、spring rspec或rspec。
rubyTestExplorer.rspecDirectory定义工作区中spec的相对目录,例如./spec/。
rubyTestExplorer.minitestCommand定义如何使用Rake运行Minitest,例如./bin/rake、bundle exec rake或rake。必须是Rake命令。
rubyTestExplorer.minitestDirectory定义测试目录的相对位置,例如./test/。

故障排除:

如果扩展无法正常工作,您可以尝试以下几种方法:

  • 确保已运行bundle install,并且Gemfile.lock中指定的所有gem都已安装(假设您使用的是Bundler)。
  • 如果您使用的是minitest,请禁用并行测试。可以通过在test_helper.rb中设置parallelize(workers: 1),或在rubyTestExplorer.minitestCommand中添加PARALLEL_WORKERS=1来实现。
  • 启用rubyTestExplorer.logpanel配置设置,并查看输出中的Ruby Test Explorer Log。这应该能显示扩展正在做什么,并提供更多关于幕后发生的事情的上下文。(您也可以使用rubyTestExplorer.logfile将日志记录到特定文件中)。
  • 检查VS Code开发者工具(命令面板 > '开发人员:切换开发者工具')是否有JSON解析错误,或者任何看起来可能来自扩展的内容。这可能是扩展中的错误,或者是您的设置问题。
  • 如果您使用的是RSpec,请确保使用的是最新版本的rspec-core gem。如果您使用的是3.6.0之前的版本,扩展可能无法工作。
  • 如果您使用的是RSpec,请确保RSpec命令和spec目录配置正确。默认情况下,测试使用bundle exec rspec运行,测试假定在./spec/目录中。您可以通过rubyTestExplorer.rspecCommand和rubyTestExplorer.rspecDirectory分别配置这些。
  • 如果测试套件信息无法加载,您的testFramework配置可能设置为none,或者自动检测可能无法确定测试框架。尝试将testFramework配置设置为rspec或minitest,具体取决于您想要使用的框架。

如果所有方法都失败或您怀疑扩展有问题,请随时打开一个issue!:)

贡献指南:

您需要安装VS Code、Node(任何版本>=12应该都可以工作)和Ruby。

  • 克隆仓库:git clone https://github.com/connorshea/vscode-ruby-test-adapter
  • 运行bin/setup安装依赖项。
  • 在VS Code中打开目录。
  • 运行npm run watch或在VS Code中启动watch任务,以启动TypeScript编译器。
  • 转到侧边栏的调试部分,运行“Ruby adapter”。这将启动一个单独的VS Code实例,用于测试扩展。每次在命令面板中运行“Reload Window”时,都会更新代码。
    • 如果您想实际使用扩展来运行测试,您需要一个Ruby项目,我通常使用我的项目vglist进行测试,但任何带有RSpec或Minitest测试的Ruby项目都可以。

该扩展基于示例测试适配器,检查该仓库可能对您有帮助。其他语言的测试适配器也可能是有用的参考。

运行测试

仓库中包含了两组测试:

  • 用于收集测试信息和运行测试的Ruby脚本测试。使用ruby目录中的bundle exec rake运行。
  • 调用Ruby脚本的VS Code扩展测试。从VS Code的调试面板使用“Run tests for”配置运行。
    • 每个支持的测试框架都有单独的调试配置。
    • 请注意,您需要在更改扩展代码或测试之前运行npm run build && npm run package,否则无法成功运行扩展测试。

您可以在.github/workflows/test.yml中查看CI配置。

发布新版本

请参阅VS Code扩展文档以获取更多信息。

在发布之前,请确保更新CHANGELOG.md文件。您还需要登录到vsce。在创建个人访问令牌以登录时,请确保为您的Azure DevOps账户中的所有组织授予访问权限。否则,它将无法正确工作。

vsce publish VERSION,例如vsce publish 1.0.0将自动处理创建git提交和git标签,更新package.json,并将新版本发布到Visual Studio Marketplace。发布后,您需要手动运行git push和git push --tags。

或者,您可以使用vsce publish major、vsce publish minor或vsce publish patch来提升扩展版本。

本站所有资源都是由网友投稿发布,或转载各大下载站, 请自行检测软件的完整性!

本站所有资源仅供学习与参考,请勿用于商业用途,否则 产生的一切后果将由您自己承担!

如有侵权请联系我们删除下架,联系方式:study_golang@163.com

最新教程

查看更多
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
  • MySQL数据管理之备份恢复案例解析视频教程
    MySQL数据管理之备份恢复案例解析视频教程
    《MySQL数据管理之备份恢复案例解析视频教程》MySQL是一个开放源码的小型关联式数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
  • MySQL索引优化解决方案
    MySQL索引优化解决方案
    本套课程是根据MySQL索引的设计理念与数据结构、索引使用场景、索引分类、索引运用场景、索引性能分析、查询优化、MySQL索引的慢查询等组成,主要讲述了MySQL索引优化的解决方案,非常适合有MySQL使用基础或者有一定工作经验的同学。课程讲解了解决大数量查询慢的问题、如何编写一个高效的SQL、查询语句应该如何优化、索引的实现原理是什么、索引又应该如何优化...等诸多SQL索引优化的难点和面试点。
  • 极客学院Docker视频教程
    极客学院Docker视频教程
    Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是各大厂商的支持,都使Docker成为了时下最受关注的技术,甚至微软都声称在下一代WindowsServer中集成对Docker的支持。所以我们收集了《极客学院Docke
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
  • JavaScript极速入门
    JavaScript极速入门
    本套课程将帮助大家迅速掌握JavaScript这门高端的、动态的、弱类型编程语言。知识点简单明了,让你学习0压力,适合新手观看学习......