【问题标题】:How to keep puma server running between rspec tests如何在 rspec 测试之间保持 puma 服务器运行
【发布时间】:2018-05-14 23:24:57
【问题描述】:

我正在使用 rspec 和 capybara 来测试包含 javascript 的功能规范。每次我运行测试时,都会启动一个单独的 puma 服务器实例,例如

Capybara starting Puma...
* Version 3.11.0 , codename: Love Song
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:64558

如果我运行完整的测试套件,这个 puma 实例只会启动一次,但如果我正在调试一个特定的测试,它会每次运行一次,这会大大增加进行调试所花费的总时间。有什么方法可以启动测试 puma Web 服务器的实例并使其在各个测试运行之间保持运行?

【问题讨论】:

    标签: capybara rspec-rails puma


    【解决方案1】:

    TL;DR;不是真的

    做到这一点的唯一方法是自己运行应用程序,告诉 Capybara 它在哪里运行 (Capybara.app_host),然后告诉 Capybara 不要运行自己的服务器 Capybara.run_server = false,就像你运行 Capybara 一样一个外部应用程序。这样做的问题是 Capybara 将失去跟踪请求完成的能力(这需要服务器在自己的线程中运行),因此同步数据库重置等成为一个大问题。真的不值得。

    【讨论】:

    • 有道理
    猜你喜欢
    • 2016-01-31
    • 2021-11-21
    • 2013-01-26
    • 2018-01-14
    • 2012-06-21
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多