Sha256: 2f6e67a60d3310c86542c1e029d9603d946dce83b6537915cea3e7ac73da11bb

Contents?: true

Size: 1.69 KB

Versions: 1

Compression:

Stored size: 1.69 KB

Contents

# This is an UNFINISHED attempt to run the unit tests currently.
# The work on the harness is complete. 
# The problem remaining is that the tests are not thread-safe.
# It's an open question whether getting this to work would actually save any execution time.

TOPDIR = File.join(File.dirname(__FILE__), '..')
$LOAD_PATH.unshift TOPDIR
Dir.chdir TOPDIR
#(Dir["unittests/*_test.rb"] - ["unittests/popups_test.rb"]).each {|x| require x}

require 'unittests/buttons_test'
require 'unittests/checkbox_test'

require 'test/unit/testsuite'
require 'thread'
class ConcurrentTestSuite < Test::Unit::TestSuite

      # Runs the tests and/or suites contained in this TestSuite.
      def run(result, &progress_block)
        yield(STARTED, name)
        threads = []
        @tests.each do |test|
          threads << Thread.new do
            test.run(result, &progress_block)
          end
        end
        threads.each {|t| t.join}
        yield(FINISHED, name)
      end
end

# create a suite
require 'test/unit/collector/objectspace'

require 'test/unit/collector'
include Test::Unit::Collector


          @filters = []
          suite = ConcurrentTestSuite.new('super suite')
          sub_suites = []
          ::ObjectSpace.each_object(Class) do |klass|
            if(Test::Unit::TestCase > klass)
              puts sub_suites, klass.suite
              add_suite(sub_suites, klass.suite)
            end
          end
          sort(sub_suites).each{|s| suite << s}


        
# select a runner
require 'test/unit/ui/console/testrunner'
Test::Unit::UI::Console::TestRunner.run(suite)


# then subclass Test::Unit::TestSuite and override the run method to be multithreaded

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
watir-1.4.1 unittests/all_tests_concurrent.rb