turbo_tests 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83d546a7efd52f8d3c1e20d6973b3a956c7cbf2f2b51b5e78c7d2ad67819b7db
4
- data.tar.gz: 6f9d1a0841e3121a814c9f98a6ab0ac7146a78506d7a8adec622b9cf6e8e4a53
3
+ metadata.gz: 8ae2d6c3bae097937e69e82c89ade0175ba7edc469947d4b48f3c881462f7663
4
+ data.tar.gz: 918698e37c573fe5c93144ac47321b90fc7a73f6c92f1c8dd7fbfbb7c8f99c83
5
5
  SHA512:
6
- metadata.gz: ad2917d505e40659a07e665523eff5af84f7b3ed9e2dacd8e7e1dd08ecc3eea88e507572f49c31cb973bbc63e1922825ef8a2c690db954689cf3afa071dbcb40
7
- data.tar.gz: 7da1494e59ecaff728dd8a0231e96d83a89f15cc67a0f9a5a67dbc4539fc3c0268cf43824ade7caed0aa2565e8b559e0996d0706e0b210061fd02d8990d71fc1
6
+ metadata.gz: a6821b254436cad890803683a3d3f0ae9534a5b024bbea909271eeabb7cbd4437f3a92c3f56f5501d6ebf01dbb8f8163c9415bad2ee9877b33ed3a6271eaff9e
7
+ data.tar.gz: 4f63e106f0e6b785f4f2118cfa1cbeb6ad0c4a08f015791e1a4d8ab4b4816baf58f5899997f27234eff86f0bcfcff52efeaa66493896d9310d4e69d8de6e9784
@@ -0,0 +1,54 @@
1
+ name: Publish Gem
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v**
7
+
8
+ jobs:
9
+ build:
10
+ name: Build + Publish
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ contents: read
14
+ packages: write
15
+
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+ - name: Set up Ruby 2.6
19
+ uses: ruby/setup-ruby@v1
20
+ with:
21
+ ruby-version: 2.6
22
+ bundler-cache: true
23
+
24
+ - name: Run tests
25
+ run: |
26
+ bundle exec rake install:local
27
+ bundle install
28
+ bundle exec turbo_tests
29
+
30
+ - uses: actions/upload-artifact@v3
31
+ with:
32
+ name: "ruby-gem"
33
+ path: "pkg/*.gem"
34
+
35
+ - name: Publish to GPR
36
+ run: |
37
+ mkdir -p $HOME/.gem
38
+ touch $HOME/.gem/credentials
39
+ chmod 0600 $HOME/.gem/credentials
40
+ printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
41
+ gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} pkg/*.gem
42
+ env:
43
+ GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
44
+ OWNER: ${{ github.repository_owner }}
45
+
46
+ - name: Publish to RubyGems
47
+ run: |
48
+ mkdir -p $HOME/.gem
49
+ touch $HOME/.gem/credentials
50
+ chmod 0600 $HOME/.gem/credentials
51
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
52
+ gem push pkg/*.gem
53
+ env:
54
+ GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_API_KEY}}"
@@ -20,7 +20,7 @@ jobs:
20
20
  snyk:
21
21
  runs-on: ubuntu-latest
22
22
  steps:
23
- - uses: actions/checkout@v2
23
+ - uses: actions/checkout@v3
24
24
  - name: Run Snyk to check configuration files for security issues
25
25
  # Snyk can be used to break the build when it detects security issues.
26
26
  # In this case we want to upload the issues to GitHub Code Scanning
@@ -1,6 +1,13 @@
1
1
  name: Tests
2
2
 
3
- on: [push, pull_request]
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ permissions:
10
+ contents: read
4
11
 
5
12
  jobs:
6
13
  test:
@@ -8,13 +15,11 @@ jobs:
8
15
 
9
16
  strategy:
10
17
  matrix:
11
- ruby:
12
- - 2.6
13
- - 2.7
18
+ ruby: [ 2.6, 2.7, 3.0, 3.1, 3.2 ]
14
19
 
15
20
  steps:
16
- - uses: actions/checkout@v2
17
- - uses: ruby/setup-ruby@master
21
+ - uses: actions/checkout@v3
22
+ - uses: ruby/setup-ruby@v1
18
23
  with:
19
24
  ruby-version: ${{matrix.ruby}}
20
25
  bundler-cache: true
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- turbo_tests (1.3.0)
5
- bundler
4
+ turbo_tests (1.4.0)
5
+ bundler (>= 2.1)
6
6
  parallel_tests (~> 3.3)
7
7
  rspec (~> 3.10)
8
8
 
@@ -42,4 +42,4 @@ DEPENDENCIES
42
42
  turbo_tests!
43
43
 
44
44
  BUNDLED WITH
45
- 2.2.27
45
+ 2.4.4
data/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  # TurboTests
4
4
 
5
- Runner for [`grosser/parallel_tests`](https://github.com/grosser/parallel_tests) with incremental summarized output. Based on [Discourse](https://github.com/discourse/discourse/blob/6b9784cf8a18636bce281a7e4d18e65a0cbc6290/lib/turbo_tests.rb) and [RubyGems](https://github.com/rubygems/rubygems/tree/390335ceb351668cd433bd5bb9823dd021f82533/bundler/tool) work in this area.
5
+ `turbo_tests` is a drop-in replacement for [`grosser/parallel_tests`](https://github.com/grosser/parallel_tests) with incremental summarized output. Source code of this gem is based on [Discourse](https://github.com/discourse/discourse/blob/6b9784cf8a18636bce281a7e4d18e65a0cbc6290/lib/turbo_tests.rb) and [RubyGems](https://github.com/rubygems/rubygems/tree/390335ceb351668cd433bd5bb9823dd021f82533/bundler/tool) work in this area.
6
6
 
7
- This feature [doesn't fit vision of `parallel_tests` author](https://github.com/grosser/parallel_tests/issues/708) and [RSpec doesn't support built-in parallel testing yet](https://github.com/rspec/rspec-rails/issues/2104#issuecomment-658474900). This gem would not be useful once one of the issues above will be implemented.
7
+ Incremental summarized output [doesn't fit vision of `parallel_tests` author](https://github.com/grosser/parallel_tests/issues/708) and [RSpec doesn't support built-in parallel testing yet](https://github.com/rspec/rspec-rails/issues/2104#issuecomment-658474900). This gem will not be useful once one of the issues above will be implemented.
8
8
 
9
9
  ## Why incremental output?
10
10
 
@@ -49,11 +49,15 @@ gem 'turbo_tests'
49
49
 
50
50
  And then execute:
51
51
 
52
- $ bundle install
52
+ ```bash
53
+ $ bundle install
54
+ ```
53
55
 
54
56
  Or install it yourself as:
55
57
 
56
- $ gem install turbo_tests
58
+ ```bash
59
+ $ gem install turbo_tests
60
+ ```
57
61
 
58
62
  ## Usage
59
63
 
@@ -0,0 +1,13 @@
1
+ RSpec.describe "Failing example group" do
2
+ after(:each) do |example|
3
+ example.metadata[:extra_failure_lines] ||= []
4
+
5
+ lines = example.metadata[:extra_failure_lines]
6
+
7
+ lines << "Test info in extra_failure_lines"
8
+ end
9
+
10
+ it "fails" do
11
+ expect(2).to eq(3)
12
+ end
13
+ end
@@ -21,7 +21,9 @@ module TurboTests
21
21
  opts.banner = <<~BANNER
22
22
  Run all tests in parallel, giving each process ENV['TEST_ENV_NUMBER'] ('1', '2', '3', ...).
23
23
 
24
- Uses parallel_tests under the hood, but reports test results incrementally. Based on Discourse and RubyGems work in this area.
24
+ Reports test results incrementally. Uses methods from `parallel_tests` gem to split files to groups.
25
+
26
+ Source code of `turbo_tests` gem is based on Discourse and RubyGems work in this area (see README file of the source repository).
25
27
 
26
28
  Usage: turbo_tests [options]
27
29
 
@@ -141,9 +141,10 @@ module TurboTests
141
141
  shared_group_inclusion_backtrace:
142
142
  example
143
143
  .metadata[:shared_group_inclusion_backtrace]
144
- .map { |frame| stack_frame_to_json(frame) }
144
+ .map { |frame| stack_frame_to_json(frame) },
145
+ extra_failure_lines: example.metadata[:extra_failure_lines],
145
146
  },
146
- location_rerun_argument: example.location_rerun_argument
147
+ location_rerun_argument: example.location_rerun_argument,
147
148
  }
148
149
  end
149
150
 
@@ -50,7 +50,7 @@ module TurboTests
50
50
  @load_count = 0
51
51
  @failure_count = 0
52
52
 
53
- @messages = Queue.new
53
+ @messages = Thread::Queue.new
54
54
  @threads = []
55
55
  @error = false
56
56
  end
@@ -260,7 +260,7 @@ module TurboTests
260
260
  end
261
261
 
262
262
  def fail_fast_met
263
- !@fail_fast.nil? && @fail_fast >= @failure_count
263
+ !@fail_fast.nil? && @failure_count >= @fail_fast
264
264
  end
265
265
 
266
266
  def report_number_of_tests(groups)
@@ -1,3 +1,3 @@
1
1
  module TurboTests
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
data/turbo_tests.gemspec CHANGED
@@ -3,25 +3,28 @@ require_relative "lib/turbo_tests/version"
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "turbo_tests"
5
5
  spec.version = TurboTests::VERSION
6
- spec.authors = ["Ilya Zub"]
7
- spec.email = ["zaoooza92@gmail.com"]
6
+ spec.platform = Gem::Platform::RUBY
7
+ spec.date = Time.now.strftime('%Y-%m-%d')
8
8
 
9
- spec.summary = "Runner for grosser/parallel_tests with incremental summarized output. Based on Discourse and Rubygems work in this area."
9
+ spec.summary = "`turbo_tests` is a drop-in replacement for `grosser/parallel_tests` with incremental summarized output. Source code of `turbo_test` gem is based on Discourse and Rubygems work in this area (see README file of the source repository)."
10
10
  spec.homepage = "https://github.com/serpapi/turbo_tests"
11
11
  spec.license = "MIT"
12
12
 
13
+ spec.authors = ["Illia Zub"]
14
+ spec.email = ["ilya@serpapi.com"]
15
+
13
16
  spec.metadata["homepage_uri"] = spec.homepage
14
17
  spec.metadata["source_code_uri"] = "https://github.com/serpapi/turbo_tests"
15
18
  spec.metadata["changelog_uri"] = "https://github.com/serpapi/turbo_tests/releases"
16
19
 
17
- spec.required_ruby_version = ">= 2.4"
20
+ spec.required_ruby_version = ">= 2.6"
18
21
 
19
22
  spec.add_dependency "rspec", "~> 3.10"
20
23
  spec.add_dependency "parallel_tests", "~> 3.3"
21
24
 
22
25
  spec.add_development_dependency "pry", "~> 0.14"
23
26
 
24
- spec.add_runtime_dependency "bundler"
27
+ spec.add_runtime_dependency "bundler", ">= 2.1"
25
28
 
26
29
  # Specify which files should be added to the gem when it is released.
27
30
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo_tests
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - Ilya Zub
7
+ - Illia Zub
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-04 00:00:00.000000000 Z
11
+ date: 2023-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -58,27 +58,27 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '2.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '2.1'
69
69
  description:
70
70
  email:
71
- - zaoooza92@gmail.com
71
+ - ilya@serpapi.com
72
72
  executables:
73
73
  - turbo_tests
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - ".github/workflows/gem-push.yml"
77
78
  - ".github/workflows/snyk_ruby-analysis.yml"
78
79
  - ".github/workflows/tests.yml"
79
80
  - ".gitignore"
80
81
  - ".rspec"
81
- - ".travis.yml"
82
82
  - CODE_OF_CONDUCT.md
83
83
  - Gemfile
84
84
  - Gemfile.lock
@@ -87,6 +87,7 @@ files:
87
87
  - Rakefile
88
88
  - bin/turbo_tests
89
89
  - fixtures/rspec/errors_outside_of_examples_spec.rb
90
+ - fixtures/rspec/failing_spec.rb
90
91
  - fixtures/rspec/pending_exceptions_spec.rb
91
92
  - lib/turbo_tests.rb
92
93
  - lib/turbo_tests/cli.rb
@@ -111,16 +112,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
112
  requirements:
112
113
  - - ">="
113
114
  - !ruby/object:Gem::Version
114
- version: '2.4'
115
+ version: '2.6'
115
116
  required_rubygems_version: !ruby/object:Gem::Requirement
116
117
  requirements:
117
118
  - - ">="
118
119
  - !ruby/object:Gem::Version
119
120
  version: '0'
120
121
  requirements: []
121
- rubygems_version: 3.2.27
122
+ rubygems_version: 3.0.3.1
122
123
  signing_key:
123
124
  specification_version: 4
124
- summary: Runner for grosser/parallel_tests with incremental summarized output. Based
125
- on Discourse and Rubygems work in this area.
125
+ summary: "`turbo_tests` is a drop-in replacement for `grosser/parallel_tests` with
126
+ incremental summarized output. Source code of `turbo_test` gem is based on Discourse
127
+ and Rubygems work in this area (see README file of the source repository)."
126
128
  test_files: []
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.6.3
6
- before_install: gem install bundler -v 2.1.4