Rails 5.1在Puma上运行系统测试?
我想知道是否有新方法在新的Rails 5.1系统测试中使用Puma服务器(Rails默认)?Rails 5.1在Puma上运行系统测试?
现在我们所有的项目都使用tiny_tds,但我试图用Capybara/Selenium进行5.1系统测试,但当然因为我没有安装/运行Puma而失败。
我查看了文档,没有看到任何关于声明要使用哪种类型的服务器的信息。连接到SQL Server数据库,所以我不知道Puma是否能够做到这一点(这可能是为什么首先使用tiny_tds)。
你在混淆数据库适配器和机架网络服务器是非常不同的事情。
彪马(像Webrick,瘦,独角兽等)是一个通用的网络服务器Rack。它坐在并等待来自访问者的传入请求,并通过使用包含环境和请求的散列来调用它们来将它们分派给应用程序(如Rails应用程序)。该应用程序返回一个包含响应的数组。服务器将其发回给访问者。
tiny_tds
另一方面是数据库适配器。它用于将应用程序连接到数据库。 Web服务器几乎完全不知道应用程序如何从请求中创建响应。这包括使用的任何数据库。
在Rails 5中,大多数服务器不需要配置。您只需将gem添加到gem文件并运行bundle install
,然后插入其中即可。没有单独的安装步骤。
这并不是早期的情况,这就是为什么Webrick--具有唯一真正优点的服务器是它不需要配置的默认设置。现在是彪马,它不像Webrick适合生产。
在不同的环境中使用不同的服务器不是一个好主意,因为它违反了dev/prod parity的想法。您的开发测试环境应该尽可能地接近您正在部署的内容,以便您可以在最终生产之前发现错误。这意味着你应该运行相同的服务器,相同的数据库等。
为你的测试套件的不同部分运行一个单独的测试服务器听起来像一个真正的傻瓜差事 - 如果它甚至可能没有黑客框架的位。
对于SQL Server,有activerecord-sqlserver-adapter可以使用tiny_tds
作为后端。
无论我还需要把美洲狮放在gemfile中吗?即使它现在是默认值?由于它看起来没有包含在这个项目中gemfile(这是一个5.1 rails项目) – msmith1114
当您使用Rails 5.1生成应用程序时,Puma包含在gem文件中。默认情况下运行'rails new'也运行bundle install,因此应该安装它。我只是测试它。 – max
但是,如果您想使用puma,请将gem添加到gemfile并运行软件包安装。 – max