Package org.testng

Class TestNG

java.lang.Object
org.testng.TestNG

public class TestNG extends Object
This class is the main entry point for running tests in the TestNG framework. Users can create their own TestNG object and invoke it in many different ways:
  • On an existing testng.xml
  • On a synthetic testng.xml, created entirely from Java
  • By directly setting the test classes
You can also define which groups to include or exclude, assign parameters, etc...

The command line parameters are:

  • -d outputdir: specify the output directory
  • -testclass class_name: specifies one or several class names
  • -testjar jar_name: specifies the jar containing the tests
  • -sourcedir src1;src2: ; separated list of source directories (used only when javadoc annotations are used)
  • -target
  • -groups
  • -testrunfactory
  • -listener

Please consult documentation for more details.

FIXME: should support more than simple paths for suite xmls

See Also:
  • usage()
  • Field Details

    • DEFAULT_COMMAND_LINE_SUITE_NAME

      public static final String DEFAULT_COMMAND_LINE_SUITE_NAME
      The default name for a suite launched from the command line
      See Also:
    • DEFAULT_COMMAND_LINE_TEST_NAME

      public static final String DEFAULT_COMMAND_LINE_TEST_NAME
      The default name for a test launched from the command line
      See Also:
    • DEFAULT_OUTPUTDIR

      public static final String DEFAULT_OUTPUTDIR
      The default name of the result's output directory (keep public, used by Eclipse).
      See Also:
    • m_suites

      protected List<XmlSuite> m_suites
    • m_useDefaultListeners

      protected boolean m_useDefaultListeners
    • DEFAULT_VERBOSE

      public static final Integer DEFAULT_VERBOSE
    • m_end

      protected long m_end
    • m_start

      protected long m_start
  • Constructor Details

    • TestNG

      public TestNG()
      Default constructor. Setting also usage of default listeners/reporters.
    • TestNG

      public TestNG(boolean useDefaultListeners)
      Used by maven2 to have 0 output of any kind come out of testng.
      Parameters:
      useDefaultListeners - Whether or not any default reports should be added to tests.
  • Method Details

    • toggleFailureIfAllTestsWereSkipped

      public void toggleFailureIfAllTestsWereSkipped(boolean failIfAllTestsSkipped)
      Parameters:
      failIfAllTestsSkipped - - Whether TestNG should enable/disable failing when all the tests were skipped and nothing was run (Mostly when a test is powered by a data provider and when the data provider itself fails causing all tests to skip).
    • setListenersToSkipFromBeingWiredInViaServiceLoaders

      public void setListenersToSkipFromBeingWiredInViaServiceLoaders(String... listeners)
      Parameters:
      listeners - - An array of fully qualified class names that should be skipped from being wired in via service loaders.
    • getStatus

      public int getStatus()
    • setOutputDirectory

      public void setOutputDirectory(String outputdir)
      Sets the output directory where the reports will be created.
      Parameters:
      outputdir - The directory.
    • setUseDefaultListeners

      public void setUseDefaultListeners(boolean useDefaultListeners)
      Parameters:
      useDefaultListeners - If true before run(), the default listeners will not be used.
      • org.testng.reporters.TestHTMLReporter
      • org.testng.reporters.JUnitXMLReporter
      • org.testng.reporters.XMLReporter
      See Also:
    • setListenerComparator

      public void setListenerComparator(ListenerComparator listenerComparator)
    • getListenerComparator

      public ListenerComparator getListenerComparator()
    • setTestJar

      public void setTestJar(String jarPath)
      Sets a jar containing a testng.xml file.
      Parameters:
      jarPath - - Path of the jar
    • setXmlPathInJar

      public void setXmlPathInJar(String xmlPathInJar)
      Parameters:
      xmlPathInJar - Sets the path to the XML file in the test jar file.
    • initializeSuitesAndJarFile

      public void initializeSuitesAndJarFile()
    • setThreadCount

      public void setThreadCount(int threadCount)
      Parameters:
      threadCount - Define the number of threads in the thread pool.
    • setParallel

      @Deprecated public void setParallel(String parallel)
      Deprecated.
      Use #setParallel(XmlSuite.ParallelMode) instead
      Parameters:
      parallel - Define whether this run will be run in parallel mode.
    • setParallel

      public void setParallel(XmlSuite.ParallelMode parallel)
    • setCommandLineSuite

      public void setCommandLineSuite(XmlSuite suite)
    • setTestClasses

      public void setTestClasses(Class[] classes)
      Set the test classes to be run by this TestNG object. This method will create a dummy suite that will wrap these classes called "Command Line Test".

      If used together with threadCount, parallel, groups, excludedGroups than this one must be set first.

      Parameters:
      classes - An array of classes that contain TestNG annotations.
    • addMethodSelector

      public void addMethodSelector(String className, int priority)
    • addMethodSelector

      public void addMethodSelector(XmlMethodSelector selector)
    • setReportAllDataDrivenTestsAsSkipped

      public void setReportAllDataDrivenTestsAsSkipped(boolean reportAllDataDrivenTestsAsSkipped)
    • getReportAllDataDrivenTestsAsSkipped

      public boolean getReportAllDataDrivenTestsAsSkipped()
    • propagateDataProviderFailureAsTestFailure

      public void propagateDataProviderFailureAsTestFailure()
    • isPropagateDataProviderFailureAsTestFailure

      public boolean isPropagateDataProviderFailureAsTestFailure()
    • shareThreadPoolForDataProviders

      public void shareThreadPoolForDataProviders(boolean flag)
    • isShareThreadPoolForDataProviders

      public boolean isShareThreadPoolForDataProviders()
    • useGlobalThreadPool

      public boolean useGlobalThreadPool()
    • shouldUseGlobalThreadPool

      public void shouldUseGlobalThreadPool(boolean flag)
    • setTestSuites

      public void setTestSuites(List<String> suites)
      Set the suites file names to be run by this TestNG object. This method tries to load and parse the specified TestNG suite xml files. If a file is missing, it is ignored.
      Parameters:
      suites - A list of paths to one more XML files defining the tests. For example:
       TestNG tng = new TestNG();
       List<String> suites = Lists.newArrayList();
       suites.add("c:/tests/testng1.xml");
       suites.add("c:/tests/testng2.xml");
       tng.setTestSuites(suites);
       tng.run();
       
    • setXmlSuites

      public void setXmlSuites(List<XmlSuite> suites)
      Specifies the XmlSuite objects to run.
      Parameters:
      suites - - The list of XmlSuite objects.
      See Also:
    • setExcludedGroups

      public void setExcludedGroups(String groups)
      Define which groups will be excluded from this run.
      Parameters:
      groups - A list of group names separated by a comma.
    • setGroups

      public void setGroups(String groups)
      Define which groups will be included from this run.
      Parameters:
      groups - A list of group names separated by a comma.
    • setTestRunnerFactory

      protected void setTestRunnerFactory(ITestRunnerFactory itrf)
    • setObjectFactory

      public void setObjectFactory(Class<? extends ITestObjectFactory> c)
    • setObjectFactory

      public void setObjectFactory(ITestObjectFactory factory)
    • setListenerClasses

      public void setListenerClasses(List<Class<? extends ITestNGListener>> classes)
      Define which listeners to user for this run.
      Parameters:
      classes - A list of classes, which must be either ISuiteListener, ITestListener or IReporter
    • addListener

      @Deprecated public void addListener(Object listener)
      Deprecated.
      Use addListener(ITestNGListener) instead
      Parameters:
      listener - The listener to add
    • addListener

      public void addListener(ITestNGListener listener)
    • getReporters

      public Set<IReporter> getReporters()
    • getTestListeners

      public List<ITestListener> getTestListeners()
    • getSuiteListeners

      public List<ISuiteListener> getSuiteListeners()
    • setVerbose

      public void setVerbose(int verbose)
      Sets the level of verbosity. This value will override the value specified in the test suites.
      Parameters:
      verbose - the verbosity level (0 to 10 where 10 is most detailed) Actually, this is a lie: you can specify -1 and this will put TestNG in debug mode (no longer slicing off stack traces and all).
    • setExecutorServiceFactory

      public void setExecutorServiceFactory(IExecutorServiceFactory factory)
    • setListenerFactory

      public void setListenerFactory(ITestNGListenerFactory factory)
    • setGenerateResultsPerSuite

      public void setGenerateResultsPerSuite(boolean generateResultsPerSuite)
    • initializeEverything

      public void initializeEverything()
      Invoked by the remote runner.
    • run

      public void run()
      Run TestNG.
    • runSuites

      protected List<ISuite> runSuites()
      Run the test suites.

      This method can be overridden by subclass.
      For example, DistributedTestNG to run in master/slave mode according to commandline args.

      Returns:
      - List of suites that were run as ISuite objects.
      Since:
      6.9.11 when moving distributed/remote classes out into separate project
    • runSuitesLocally

      public List<ISuite> runSuitesLocally()
      This needs to be public for maven2, for now..At least until an alternative mechanism is found.
      Returns:
      The locally run suites
    • getConfiguration

      protected org.testng.internal.IConfiguration getConfiguration()
    • main

      public static void main(String[] argv)
      The TestNG entry point for command line execution.
      Parameters:
      argv - the TestNG command line parameters.
    • privateMain

      public static TestNG privateMain(String[] argv, ITestListener listener)
      Note: this method is not part of the public API and is meant for internal usage only.
      Parameters:
      argv - The param arguments
      listener - The listener
      Returns:
      The TestNG instance
    • configure

      protected void configure(CommandLineArgs cla)
      Configure the TestNG instance based on the command line parameters.
      Parameters:
      cla - The command line parameters
    • setSuiteThreadPoolSize

      public void setSuiteThreadPoolSize(Integer suiteThreadPoolSize)
    • getSuiteThreadPoolSize

      public Integer getSuiteThreadPoolSize()
    • setRandomizeSuites

      public void setRandomizeSuites(boolean randomizeSuites)
    • alwaysRunListeners

      public void alwaysRunListeners(boolean alwaysRun)
    • setSourcePath

      @Deprecated public void setSourcePath(String path)
      Deprecated.
      This method is invoked by Maven's Surefire, only remove it once Surefire has been modified to no longer call it.
      Parameters:
      path - The path
    • configure

      @Deprecated public void configure(Map cmdLineArgs)
      Deprecated.
      use new configure(CommandLineArgs) method
      This method is invoked by Maven's Surefire to configure the runner, do not remove unless you know for sure that Surefire has been updated to use the new configure(CommandLineArgs) method.
      Parameters:
      cmdLineArgs - The command line
    • setTestNames

      public void setTestNames(List<String> testNames)
      Parameters:
      testNames - Only run the specified tests from the suite.
    • setSkipFailedInvocationCounts

      public void setSkipFailedInvocationCounts(Boolean skip)
    • validateCommandLineParameters

      protected static void validateCommandLineParameters(CommandLineArgs args)
      Double check that the command line parameters are valid.
      Parameters:
      args - The command line to check
    • hasFailure

      public boolean hasFailure()
      Returns:
      true if at least one test failed.
    • hasFailureWithinSuccessPercentage

      public boolean hasFailureWithinSuccessPercentage()
      Returns:
      true if at least one test failed within success percentage.
    • hasSkip

      public boolean hasSkip()
      Returns:
      true if at least one test was skipped.
    • getOutputDirectory

      public String getOutputDirectory()
    • getAnnotationTransformer

      public IAnnotationTransformer getAnnotationTransformer()
    • getDefaultSuiteName

      public String getDefaultSuiteName()
      Returns:
      the defaultSuiteName
    • setDefaultSuiteName

      public void setDefaultSuiteName(String defaultSuiteName)
      Parameters:
      defaultSuiteName - the defaultSuiteName to set
    • getDefaultTestName

      public String getDefaultTestName()
      Returns:
      the defaultTestName
    • setDefaultTestName

      public void setDefaultTestName(String defaultTestName)
      Parameters:
      defaultTestName - the defaultTestName to set
    • setConfigFailurePolicy

      public void setConfigFailurePolicy(XmlSuite.FailurePolicy failurePolicy)
      Sets the policy for whether or not to ever invoke a configuration method again after it has failed once. Possible values are defined in XmlSuite. The default value is XmlSuite.FailurePolicy.SKIP
      Parameters:
      failurePolicy - the configuration failure policy
    • getConfigFailurePolicy

      public XmlSuite.FailurePolicy getConfigFailurePolicy()
      Returns the configuration failure policy.
      Returns:
      config failure policy
    • getDefault

      @Deprecated public static TestNG getDefault()
      Deprecated.
      since 5.1
      Returns:
      The default instance
    • setMethodInterceptor

      public void setMethodInterceptor(IMethodInterceptor methodInterceptor)
    • setDataProviderThreadCount

      public void setDataProviderThreadCount(int count)
    • addClassLoader

      public void addClassLoader(ClassLoader loader)
      Add a class loader to the searchable loaders.
      Parameters:
      loader - The class loader to add
    • setPreserveOrder

      public void setPreserveOrder(boolean b)
    • getStart

      protected long getStart()
    • getEnd

      protected long getEnd()
    • setGroupByInstances

      public void setGroupByInstances(boolean b)
    • setServiceLoaderClassLoader

      public void setServiceLoaderClassLoader(URLClassLoader ucl)
    • getServiceLoaderListeners

      public List<ITestNGListener> getServiceLoaderListeners()
    • setInjectorFactory

      public void setInjectorFactory(IInjectorFactory factory)