需要 Ruby Gem 中 rspec 测试的路径

亨利TK

我正在创建一个简单的 Ruby Gem,它目前按照制作自己的 gem文档中的示例进行布局

我的目录结构:

.
├── Gemfile
├── Gemfile.lock
├── lib
│   ├── go_run
│   │   ├── parser.rb
│   │   └── runner.rb
│   └── go_run.rb
└── spec
    ├── go_run_spec.rb
    ├── parser_spec.rb
    └── runner_spec.rb

我最初Runnerlib/go_run/runner.rbjust 中调用了该类Runner,但现在,根据记录的示例,我将其命名为GoRun::Runner. 该代码有效。问题是现在运行bundle exec rspec spec/parser_spec.rb没有。它失败了:

/home/smurf/dev/ruby/go_run/lib/go_run/parser.rb:3:in `<top (required)>': uninitialized constant GoRun (NameError)

该文件的第三行是:

class GoRun::Parser

我正在使用require库代码spec/parser_spec.rbrequire 'go_run/parser'

我尝试将它包含在 中require_relative '../lib/go_run/parser',但这产生了相同的错误。

有谁知道我做错了什么?

更新:我已经在这个分支上上传了完整的代码:https : //github.com/henrytk/go_run/tree/stackoverflow-43155117

德伦米

问题lib/go_run/parser.rb出在测试本身而不是测试本身。每当 Ruby 找到GoRun::Parser定义时,它就会GoRun在常量查找表中查找,但它不会在那里,因此程序退出并出现错误。

请注意,lib/go_run.rb用作入口点也不起作用,因为定义之前go_run/parser.rb必需的 GoRun

部分问题是同时GoRun用作项目级命名空间和入口点class


您应该考虑使用几个习语来解决这种情况:

  1. 制作GoRun一个顶级module,纯粹用于命名空间。移动生活在目前的逻辑放到了自己的逻辑class,例如go_run/cli.rbgo_run.rb然后将该文件保存为一种清单文件,它需要项目的类。

  2. 使用嵌套的module- andclass语法。这将定义外部模块(如果尚未定义)。

  3. 使用使用spec_helper.rb, 引导项目文件require 'go_run',以确保在运行测试之前正确加载所有内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在rspec中需要gem-它有什么作用?

来自分类Dev

在rspec中需要gem-它有什么作用?

来自分类Dev

需要订购Ruby gem

来自分类Dev

在测试 url 中传递属性 - Rspec / Addressable gem

来自分类Dev

基于所使用的gem版本的Ruby RSpec测试是成功还是失败

来自分类Dev

Rails rspec 功能测试使用“stripe-ruby-mock” gem 失败

来自分类Dev

需要在RSpec中按值对哈希排序的测试方法

来自分类Dev

我需要帮助在Rails中编写rspec测试

来自分类Dev

在Ruby脚本中需要Ruby Gem会中断Cron作业执行

来自分类Dev

将RSpec测试嵌入到Ruby类中

来自分类Dev

Ruby on Rails:无法选中RSpec测试中的复选框

来自分类Dev

rspec-如何测试Ruby中的零输入

来自分类Dev

需要 Ruby 脚本中 gem 中的文件而无需 bundle exec

来自分类Dev

Ruby On Rails Rspec需要冲突

来自分类Dev

rspec和gem bullet测试环境失败

来自分类Dev

使用Bullet gem通过rspec进行测试

来自分类Dev

使用rspec测试Ruby模块

来自分类Dev

Ruby - Airbourne Rspec API 测试

来自分类Dev

rswag gem无法识别rspec中的参数

来自分类Dev

如何使用RSpec(无轨)将simplecov与Ruby gem集成?

来自分类常见问题

在Windows中安装Ruby Gem

来自分类Dev

Ruby on Rails使用Rspec功能测试,获取在测试过程中创建的对象的ID

来自分类Dev

Rspec测试需要睡眠才能工作

来自分类Dev

rspec在需要存根的私有方法中测试私有方法

来自分类Dev

删除rspec中的测试-change(Model,:count)失败-为什么需要重新加载?

来自分类Dev

如何直接从其路径要求Ruby gem?

来自分类Dev

如何找到安装Ruby Gem的路径

来自分类Dev

Linux中Ruby可执行文件和gem.bat的路径在哪里?

来自分类Dev

Linux中Ruby可执行文件和gem.bat的路径在哪里?

Related 相关文章

热门标签

归档