DEV: Restore RSpec 'documentation' output, but collapse in CI (#26485)

This reverts commit ef895f1c32 and 57df0d526e, but adds GitHub actions line grouping to the verbose output to reduce scrolling.
This commit is contained in:
David Taylor 2024-04-03 10:54:55 +01:00 committed by GitHub
parent c5f1fc3a08
commit 8098876bfa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 30 additions and 7 deletions

View File

@ -212,11 +212,11 @@ jobs:
- name: Core RSpec
if: matrix.build_type == 'backend' && matrix.target == 'core'
run: bin/turbo_rspec --use-runtime-info --verbose
run: bin/turbo_rspec --use-runtime-info --verbose --format documentation
- name: Plugin RSpec
if: matrix.build_type == 'backend' && matrix.target == 'plugins'
run: bin/rake plugin:turbo_spec['*','--verbose --use-runtime-info']
run: bin/rake plugin:turbo_spec['*','--verbose --format documentation --use-runtime-info']
- name: Plugin QUnit
if: matrix.build_type == 'frontend' && matrix.target == 'plugins'
@ -246,7 +246,7 @@ jobs:
if: matrix.build_type == 'system' && matrix.target == 'core'
env:
CHECKOUT_TIMEOUT: 10
run: RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --use-runtime-info --profile=50 --verbose spec/system
run: RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --use-runtime-info --profile=50 --verbose --format documentation spec/system
- name: Plugin System Tests
if: matrix.build_type == 'system' && matrix.target == 'plugins'
@ -254,7 +254,7 @@ jobs:
CHECKOUT_TIMEOUT: 10
run: |
GLOBIGNORE="plugins/chat/*";
LOAD_PLUGINS=1 RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --use-runtime-info --profile=50 --verbose plugins/*/spec/system
LOAD_PLUGINS=1 RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --use-runtime-info --profile=50 --verbose --format documentation plugins/*/spec/system
shell: bash
timeout-minutes: 30
@ -262,7 +262,7 @@ jobs:
if: matrix.build_type == 'system' && matrix.target == 'chat'
env:
CHECKOUT_TIMEOUT: 10
run: LOAD_PLUGINS=1 RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --use-runtime-info --profile=50 --verbose plugins/chat/spec/system
run: LOAD_PLUGINS=1 RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --use-runtime-info --profile=50 --verbose --format documentation plugins/chat/spec/system
timeout-minutes: 30
- name: Theme System Tests
@ -270,7 +270,7 @@ jobs:
env:
CHECKOUT_TIMEOUT: 10
run: |
RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --profile=50 --verbose tmp/themes/*/spec/system
RAILS_ENABLE_TEST_LOG=1 RAILS_TEST_LOG_LEVEL=error PARALLEL_TEST_PROCESSORS=4 bin/turbo_rspec --profile=50 --verbose --format documentation tmp/themes/*/spec/system
shell: bash
timeout-minutes: 30

View File

@ -3,7 +3,22 @@
module TurboTests
# An RSpec formatter that prepends the process id to all messages
class DocumentationFormatter < ::TurboTests::BaseFormatter
RSpec::Core::Formatters.register(self, :example_failed, :example_passed, :example_pending)
RSpec::Core::Formatters.register(
self,
:example_failed,
:example_passed,
:example_pending,
:start,
:stop,
)
def start(*args)
output.puts "::group:: Verbose turbo_spec output" if ENV["GITHUB_ACTIONS"]
end
def stop(*args)
output.puts "::endgroup::" if ENV["GITHUB_ACTIONS"]
end
def example_passed(notification)
output.puts RSpec::Core::Formatters::ConsoleCodes.wrap(

View File

@ -48,6 +48,10 @@ module TurboTests
end
end
def start
delegate_to_formatters(:start, RSpec::Core::Notifications::NullNotification)
end
def example_passed(example)
delegate_to_formatters(:example_passed, example.notification)
@ -83,6 +87,8 @@ module TurboTests
def finish
end_time = Time.now
delegate_to_formatters(:stop, RSpec::Core::Notifications::NullNotification)
delegate_to_formatters(:start_dump, RSpec::Core::Notifications::NullNotification)
delegate_to_formatters(

View File

@ -89,6 +89,8 @@ module TurboTests
start_regular_subprocess(tests, process_id + 1, **subprocess_opts)
end
@reporter.start
handle_messages
@reporter.finish