我正在使用菠菜,Capybara和Poltergeist一起编写自动化UI测试。我一直在努力加快本地运行测试。我正在使用Spring,它对环境加载有所帮助。但是,对于Poltergeist启动的应用服务器的第一个请求(visit
)很慢,因为Rails必须在第一次编译资产。我尝试在测试环境中启动本地服务器,然后在我的菠菜env.rb
文件中执行此操作:
::Capybara.run_server = false
::Capybara.app_host = "http://localhost:#{ENV['TEST_SERVER_PORT']}"
这使调试变得困难,因为Web服务器在与菠菜进程不同的进程中运行。此外,预编译资产不是一个好的解决方案,因为我不想每次在JS文件中调整内容然后运行测试来验证我的更改时都要运行它。
结论:是否有人想出如何让第一个测试服务器请求更快?
答案 0 :(得分:0)
您可以对Spinach使用并行测试
https://github.com/grosser/parallel_tests
它可能无法解决首次请求的问题,但它可以加快运行所有测试 - 这仍然可能对您有益
答案 1 :(得分:0)
首先,我会设置rspec-retry
。其次,请在RSpec.configure do |config|
config.before(:all) { visit '/' if defined?(visit) }
end
中尝试:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use App\Models\Main as MainModel;
use View;
abstract class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function __construct() {
$oMainM = new MainModel;
$notifications = $oMainM->get_notifications();
View::share('notifications', $notifications);
}
}