【问题标题】:Load Cucumber tests but don't execute them加载 Cucumber 测试但不执行它们
【发布时间】:2017-09-25 17:27:05
【问题描述】:

我对 Ruby 很陌生,所以如果答案很明显,我很抱歉。

给定

仅由 Cucumber 测试(功能)组成的现有项目。该项目有一个 Gemfile,features/support 下的 env.rb 将项目目录附加到 $LOAD_PATH 并需要几个库。我可以通过执行来运行这些测试

bundler exec cucumber -r features

问题

出于代码检查的目的,我希望能够将支持文件加载到 REPL(例如,pry)中。换句话说,我想创建一个类似console 的脚本来加载测试中使用的所有代码,但不执行测试。对于使用这种 REPL 进行代码完成、导航、重构等操作的编辑器,我需要它。由于这个“应用程序”没有任何类似于入口点的东西,我不知道如何创建一个.到目前为止,我要求 support 目录中的所有文件的努力没有成功,特别是由于使用了 World() 顶级方法,我相信这是由 Cucumber 定义的。

【问题讨论】:

    标签: ruby cucumber editor


    【解决方案1】:

    我不太确定您要完成什么,但如果您在测试组中的 Gemfile 中加载了 pry gem,您应该可以在任何测试中输入 binding.pry 命令检查代码/环境。

    可能看起来像这样:

    宝石文件

    group :development, :test do
      gem "pry"
    end
    

    您也可以使用 rake 任务并采用相同的方法加载环境。

    lib/rake/sometask.rake

    namespace :load do
    desc "inspect code"
      task :code, => :environment do
        binding.pry
      end
    end
    

    例如运行bundle exec rake load:code

    【讨论】:

    • 不,不,我想要的是在加载但未执行的测试代码的情况下启动类似 Rails 的控制台。我找到了一种方法,方法是调用Cucumber::Runtime.new(...),然后调用这个类的一些初始化。但我仍然需要验证它确实做了我需要它做的事情。
    • 好吧,祝你好运,如果你弄明白了,请发布你的答案,因为目前还不清楚你真正想要做什么。
    猜你喜欢
    • 2019-06-01
    • 1970-01-01
    • 2017-09-24
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多