ruby-on-rails - 如何测试依赖 Rails 并使用 Rails 命令的 gem
问题描述
我正在制作一个执行 Rails 命令的 gem(rails g model Item
例如)。当我在 Rails 项目中使用它时,一切正常。问题是在 Rails 项目之外的开发中对其进行测试。
我正在使用cucumber
witharuba
来测试 CLI 命令是否执行正确的 rails 命令并生成预期的文件。不幸的是,当我尝试测试该行为时,它失败了,因为没有 rails 文件,并且命令需要在 Rails 项目中运行才能工作。
我在 gemspec 中添加了一个 rails 依赖项:
Gem::Specification.new do |spec|
spec.add_development_dependency 'rails', '~> 5.2.4'
end
我曾考虑在测试开始时创建一个新的 rails 项目,然后在测试运行后将其删除,但这似乎非常不方便。有一个更好的方法吗?
解决方案
查看 Thoughbot 的评估宝石:
Appraisal 与 bundler 和 rake 集成,以在称为“评估”的可重复场景中针对不同版本的依赖项测试您的库。
这是有关如何设置它的指南tests
,包括在您的目录中设置微型 Rails 应用程序。
推荐阅读
- ios - Swift 中闭包的奇怪缩短语法?
- react-native - React-Native:无论 numberOfLines 属性如何,TextInput 的大小都会自动增加
- html - 拒绝加载图像“blob:...”,因为它违反了以下内容安全政策
- spring - 如何在 Spring Bean XML 中放置条件
- qt - 在树莓派上运行 Qml 应用程序
- pyinstaller - Pyinstaller noconsole 选项使 exe 致命错误 [已解决]
- reactjs - 如何在 ReactJs 中在 useQuery Apollo 中设置客户端
- java - 限制 Elasticsearch 中的嵌套字段
- date - 昨天的日期将与 .txt 的文件名进行比较
- java - 处理杰克逊属性的布尔值和空字符串?