首页 > 解决方案 > How to run unit tests before building a ruby gem?

问题描述

I am developing a gem and I have my unit tests in lib/spec directory. Currently I manually run unit tests using rspec lib/spec. And then I build gem using gem build mygem.gemspec (which builds a .gem file).

How can I run my unit tests along with gem build command? (Just like how we do production builds using npm)

标签: rubyrubygems

解决方案


如果您的构建过程包含多个任务(例如测试、创建 gem、发布 gem),并且这些任务之间存在依赖关系(例如,只有在测试成功时才应创建 gem,以便发布 gem ,它需要先创建),您可以使用构建工具来自动化它。

实际上,构建工具的用途远不止构建,这就是为什么有些人更喜欢术语面向任务的编程或(我个人喜欢的)面向依赖的编程

这种面向依赖的编程工具中最著名的可能是make. 如果您熟悉 Java 生态系统,您可能知道Apache AntGradle。在 Microsoft 世界中,有Microsoft Build Engine (MSBuild)。从 ECMAScript 生态系统中,您可能知道GruntGulp。新来的热门人是 Google 的Bazel

Ruby 也有自己的此类工具,使用最广泛的一种是Rake

许多 Ruby 库和工具都带有自己现成的 Rake 任务,因此您不必自己编写它们。例如,对于您的特定用例,有用于构建 gem 和运行 RSpec 测试的现成任务。


推荐阅读