【问题标题】:How to re-generate test directory in rails6 app?如何在 rails6 应用程序中重新生成测试目录?
【发布时间】:2020-05-26 15:16:05
【问题描述】:

我想为我的 Rails 应用程序编写集成和系统测试。也许我在生成应用程序后不小心删除了test 文件夹,或者使用-t 标志编写了它。

当我想运行rails g integration_test board_flow 命令时,什么也没有发生:

rails generate integration_test board_flow
DEPRECATION WARNING: Including LoggerSilence is deprecated and will be removed in Rails 6.1. Please use `ActiveSupport::LoggerSilence` instead (called from <main> at /home/procy/my-app-name/config/application.rb:20)
Deprecation warning: Expected string default value for '--test-framework'; got false (boolean).
This will be rejected in the future unless you explicitly pass the options `check_default_type: false` or call `allow_incompatible_default_type!` in your code
You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION

我之前没有为此应用创建任何测试(单元测试等)

我该怎么办?

【问题讨论】:

  • 我会尝试在不同的位置创建另一个虚拟 Rails 项目,然后复制 ./test 目录。之后我会尝试再次生成集成测试。
  • 嗯,这可能会有所帮助,但我认为,模型与我的应用程序不匹配:/
  • ./test 目录只包含新建项目后的样板代码。你提到你之前没有创建任何测试,所以通过复制样板文件你不应该丢失任何东西。
  • 谢谢,我已经制作了另一个相同的应用程序,只是复制了test 文件夹。只是,我以为我可以通过generate 命令重新制作它,但是,无论如何,谢谢!

标签: ruby-on-rails testing integration-testing


【解决方案1】:

最快的解决方法是创建两个具有相同名称但位于不同位置的 Rails 应用程序,一个带有 -T 标志以忽略测试,另一个没有 -T 标志。

然后将两个项目目录与meld 等工具进行比较,以直观地发现应用程序之间的差异。将没有-T项目生成的项目中所需的文件和配置复制到您的项目中。

【讨论】:

    【解决方案2】:

    试试rails g test_unit:integration NameOfTheTest

    【讨论】:

    • 见“Explaining entirely code-based answers”。虽然这在技术上可能是正确的,但它并没有解释为什么它可以解决问题或应该是选择的答案。我们应该在帮助解决问题的同时进行教育。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    相关资源
    最近更新 更多