如何加速Rails 5“系统”测试?

时间:2017-12-19 17:09:54

标签: ruby-on-rails testing

来自rspec,只要我们不启用JavaScript,我们就可以快速运行Capybara的功​​能规格。我们如何加快内置Rails 5系统测试的开始和/或执行时间?

我当前的 application_system_test_case.rb

   <script>
        sum = 0;
        charge = 0;

$('.panel').append(
        '<div class="container" style=" font-size:14px; "> '+ 

        '<table style="width:100%;" class="table" id="tables">'+


'<td  class="name" >'+std.name+'</td>'+
'<td><p class="total" ><span class="min-total" name="total" id="total"></span></p></td>'+
'</table>'+
'</div>'

    $('.panel').on('keyup','.quantity',function()

       container = $(this).closest('div');

       quantity = Number($(this).val());
       price = Number($(this).closest('div').find('.price').data('price'));         
       container.find(".min-total span").text(quantity * price);

        sum = 0;

           $(".sum-total").each(function(){
           sum = sum + Number($(this).text());
           })  
     }

        $('.charge').on('keyup','.charge',function(){
                $('.charge span').text( Number($(this).val()));
                charge = Number($(this).val());

         alert(sum + charge);


        </script>

1 个答案:

答案 0 :(得分:1)

啊,现在我记得了。 Capybara默认使用RackTest驱动程序,这非常快。您可以使用Rails系统测试配置执行相同的操作。

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :rack_test
end

我还不确定的一个缺点是你如何为某些需要执行JavaScript的测试切换驱动程序,因此需要一个真正的无头浏览器来驱动系统测试。 (在rspec中,我们在功能测试定义中传递js: true选项。)