【问题标题】:How to run unit tests before building a ruby gem?如何在构建 ruby​​ gem 之前运行单元测试?
【发布时间】:2018-09-25 21:28:33
【问题描述】:

我正在开发一个 gem,我在 lib/spec 目录中有我的单元测试。目前我使用rspec lib/spec 手动运行单元测试。然后我使用 gem build mygem.gemspec 构建 gem(构建一个 .gem 文件)。

如何使用 gem build 命令运行我的单元测试? (就像我们使用 npm 进行生产构建一样)

【问题讨论】:

  • 试试rake,让build任务依赖于test任务。如果测试过程返回非零,则构建任务将不会运行,这是我假设您要求的效果。恭喜您编写测试;他们让一切变得不同。

标签: ruby rubygems


【解决方案1】:

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

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

此类面向依赖的编程工具中最著名的可能是make。如果您熟悉 Java 生态系统,您可能知道Apache Ant 和Gradle。在微软的世界里,有Microsoft Build Engine (MSBuild)。从 ECMAScript 生态系统中,您可能知道Grunt 或Gulp。最热门的新人是 Google 的 Bazel。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多