Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add TEST_QUEUE_SPLIT_GROUPS feature to testunit runner #129

Merged
merged 1 commit into from
Jun 30, 2023
Merged

Add TEST_QUEUE_SPLIT_GROUPS feature to testunit runner #129

merged 1 commit into from
Jun 30, 2023

Conversation

arika
Copy link
Contributor

@arika arika commented Jun 26, 2023

This PR add split groups feature to test-unit runner, and fix error on nested sub_test_cases.
Current version of testunit-queue fails when nested sub_test_cases exists.

# t.rb
require 'test/unit'

class NestedTestCase < Test::Unit::TestCase
  sub_test_case 'sub_test_case 1' do
    test 'test 1' do
      assert true
    end
  end
end
$ TEST_QUEUE_WORKERS=1 testunit-queue test/examples/example_testunit_split.rb
Starting test-queue master (/tmp/test_queue_96944_460.sock)

==> Starting test-queue worker [1] (96960 on mini2023.local) - iterating over /tmp/test_queue_96944_460.sock

Loaded suite specified by test-queue master
Started
Finished in 0.103876 seconds.
-------------------------------------------------------------------------------
1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------
9.63 tests/s, 9.63 assertions/s
/.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner/testunit.rb:33:in `block in failure_count': undefined method `failure_count' for nil:NilClass (NoMethodError)

    (@iterator || @tests).sum { |t| t.instance_variable_get(:@_result).failure_count }
                                                                      ^^^^^^^^^^^^^^
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner/testunit.rb:33:in `sum'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner/testunit.rb:33:in `failure_count'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/iterator.rb:71:in `block in each'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/iterator.rb:29:in `loop'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/iterator.rb:29:in `each'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner/testunit.rb:20:in `run'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:39:in `catch'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
	from /.../lib/ruby/gems/3.2.0/gems/test-unit-3.6.1/lib/test/unit/ui/testrunner.rb:25:in `start'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner/testunit.rb:51:in `run_worker'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner.rb:290:in `block (2 levels) in spawn_workers'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner.rb:285:in `fork'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner.rb:285:in `block in spawn_workers'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner.rb:282:in `times'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner.rb:282:in `spawn_workers'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner.rb:227:in `execute_internal'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/lib/test_queue/runner.rb:119:in `execute'
	from /.../lib/ruby/gems/3.2.0/gems/test-queue-0.9.0/exe/testunit-queue:9:in `<top (required)>'
	from /.../bin/testunit-queue:25:in `load'
	from /.../bin/testunit-queue:25:in `<main>'

==> Summary (1 workers in 0.1108s)

    [ 1] 1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications         1 suites in 0.1088s      (pid 96960 exit 1 )

@koic koic merged commit 96e583b into tmm1:master Jun 30, 2023
15 checks passed
@koic
Copy link
Collaborator

koic commented Jun 30, 2023

Thanks!

@arika arika deleted the testunit-split-groups branch June 30, 2023 02:33
@koic
Copy link
Collaborator

koic commented Jul 1, 2023

I just cut test-queue 0.11.0!
https://github.com/tmm1/test-queue/releases/tag/v0.11.0

@arika
Copy link
Contributor Author

arika commented Jul 1, 2023

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants