Class: Buildr::TestNG

Inherits:
Buildr::TestFramework::Java show all
Defined in:
lib/buildr/java/tests.rb

Overview

TestNG test framework. To use in your project:

test.using :testng

Support the following options:

  • :properties – Hash of properties passed to the test suite.

  • :java_args – Arguments passed to the JVM.

Constant Summary collapse

VERSION =
'5.7'

Instance Attribute Summary

Attributes inherited from Buildr::TestFramework::Base

#options, #task

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Buildr::TestFramework::Java

applies_to?

Methods inherited from Buildr::TestFramework::Base

applies_to?, #dependencies, #initialize, to_sym

Constructor Details

This class inherits a constructor from Buildr::TestFramework::Base

Class Method Details

.dependenciesObject



285
286
287
# File 'lib/buildr/java/tests.rb', line 285

def dependencies
  ["org.testng:testng:jar:jdk15:#{version}"]+ JMock.dependencies
end

.versionObject



281
282
283
# File 'lib/buildr/java/tests.rb', line 281

def version
  Buildr.settings.build['testng'] || VERSION
end

Instance Method Details

#run(tests, dependencies) ⇒ Object

:nodoc:



303
304
305
306
307
308
309
310
311
312
313
314
315
316
# File 'lib/buildr/java/tests.rb', line 303

def run(tests, dependencies) #:nodoc:
  cmd_args = [ 'org.testng.TestNG', '-sourcedir', task.compile.sources.join(';'), '-suitename', task.send(:project).name ]
  cmd_args << '-d' << task.report_to.to_s
  cmd_options = { :properties=>options[:properties], :java_args=>options[:java_args],
                  :classpath=>dependencies }
  tests.inject([]) do |passed, test|
    begin
      Java::Commands.java cmd_args, '-testclass', test, cmd_options.merge(:name=>test)
      passed << test
    rescue
      passed
    end
  end
end

#tests(dependencies) ⇒ Object

:nodoc:



297
298
299
300
301
# File 'lib/buildr/java/tests.rb', line 297

def tests(dependencies) #:nodoc:
  filter_classes(dependencies, 
                 :class_annotations => %w{org.testng.annotations.Test},
                 :method_annotations => %w{org.testng.annotations.Test})
end