parallel_tests RSpec 提高性能

parallel_tests RSpec improve performance

我有一套控制器测试,可以调用外部沙箱 api 进行测试,这使得性能相当慢。我想通过允许 parallel_tests 不仅并行 运行 套件,而且允许单个 describes.

来提高性能

例如:

RSpec.describe FooController do
    describe '#index' ...
    describe '#create' ...
end

因为 #index#create 测试不共享任何内存 space,可以将它们并行化。一种选择是:

RSpec.describe 'FooController#index' do
    describe '#index' ...
end

RSpec.describe 'FooController#index' do
    describe '#create' ...
end

但这使得测试看起来很笨拙并且难以通读。有没有一种方法可以轻松地让 parallel_tests 运行 每个 describe 并行?

原来 parallel_tests 的维护者也有一个 gem 专门为此设计的:https://github.com/grosser/parallel_split_test

通过 gem install 'parallel_test_split' 安装后,您可以 运行 parallel_split_test

将慢(但小)的套件从 12 秒减少到 6