Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 5.1在Puma上运行系统测试?_Ruby On Rails_Ruby On Rails 5.1 - Fatal编程技术网

Ruby on rails Rails 5.1在Puma上运行系统测试?

Ruby on rails Rails 5.1在Puma上运行系统测试?,ruby-on-rails,ruby-on-rails-5.1,Ruby On Rails,Ruby On Rails 5.1,我想知道是否有一种方法可以在新的Rails5.1系统测试中使用Puma服务器(Rails默认) 现在在我们的所有项目中,我们都使用tiny_tds,但我尝试使用Capybara/Selenium进行5.1系统测试,但它当然失败了,因为我没有安装/运行Puma 我查看了文档,没有看到任何关于声明要使用的服务器类型的内容。我们正在连接一个SQL Server数据库,所以我不知道Puma是否能够做到这一点(这可能就是我们最初使用tiny_tds的原因)。您混淆了数据库适配器和机架式web服务器,它们是

我想知道是否有一种方法可以在新的Rails5.1系统测试中使用Puma服务器(Rails默认)

现在在我们的所有项目中,我们都使用tiny_tds,但我尝试使用Capybara/Selenium进行5.1系统测试,但它当然失败了,因为我没有安装/运行Puma


我查看了文档,没有看到任何关于声明要使用的服务器类型的内容。我们正在连接一个SQL Server数据库,所以我不知道Puma是否能够做到这一点(这可能就是我们最初使用tiny_tds的原因)。

您混淆了数据库适配器和机架式web服务器,它们是非常不同的东西

Puma(如Webrick、Thin、Unicorn等)是一种通用web服务器。它坐着等待来自访问者的传入请求,并通过使用包含环境和请求的散列调用应用程序(如Rails应用程序)将它们发送到应用程序。应用程序返回一个包含响应的数组。服务器将其发送回访问者

另一方面,tiny_tds是一个数据库适配器。它用于将应用程序连接到数据库。web服务器几乎完全不知道应用程序如何根据请求创建响应。这包括所使用的任何数据库

在Rails5中,大多数服务器不需要配置。您只需将gem添加到gem文件并运行
bundle install
,它们就可以自己插入。没有单独的安装步骤

这不是之前的情况,这就是为什么Webrick——一个不需要配置的服务器——是默认的。与韦布里克不同,现在适合生产的是彪马

在不同的环境中使用不同的服务器不是一个好主意,因为这违反了。您的开发和测试环境应该尽可能接近您要部署的目标,以便您能够在bug进入生产环境之前捕获它们。这意味着您应该运行相同的服务器、相同的数据库等

为测试套件的不同部分运行一个单独的测试服务器听起来像是一个真正的傻瓜差事——如果它甚至不可能在不破坏框架的情况下完成的话


对于SQL Server,可以使用
tiny\u tds
作为后端。

不管怎样,我仍然需要将puma放在GEM文件中,对吗?即使现在是默认值?由于Puma似乎未包含在此项目中,所以当您使用rails 5.1生成应用程序时,Puma将包含在此项目中(即def.a 5.1 rails项目)。默认情况下,运行
railsnew
也会运行bundle install,因此应该安装它。我刚刚测试了它。但是如果你想使用puma,可以将gem添加到gem文件并运行bundle安装。