All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.testng.internal.RuntimeBehavior Maven / Gradle / Ivy

There is a newer version: 7.10.1
Show newest version
package org.testng.internal;

import java.util.TimeZone;

/** This class houses handling all JVM arguments by TestNG */
public final class RuntimeBehavior {

  public static final String TESTNG_THREAD_AFFINITY = "testng.thread.affinity";
  public static final String TESTNG_MODE_DRYRUN = "testng.mode.dryrun";
  private static final String TEST_CLASSPATH = "testng.test.classpath";
  private static final String SKIP_CALLER_CLS_LOADER = "skip.caller.clsLoader";
  public static final String TESTNG_USE_UNSECURE_URL = "testng.dtd.http";
  public static final String SHOW_TESTNG_STACK_FRAMES = "testng.show.stack.frames";

  private RuntimeBehavior() {}

  public static boolean showTestNGStackFrames() {
    return Boolean.getBoolean(SHOW_TESTNG_STACK_FRAMES);
  }

  public static boolean useHttpUrlForDtd() {
    return Boolean.getBoolean(TESTNG_USE_UNSECURE_URL);
  }

  public static String getDefaultLineSeparator() {
    return System.getProperty("line.separator");
  }

  public static String getCurrentUserHome() {
    return System.getProperty("user.home");
  }

  public static String getDefaultDataProviderThreadCount() {
    return System.getProperty("dataproviderthreadcount", "");
  }

  public static String getDefaultXmlGenerationImpl() {
    return System.getProperty("testng.xml.weaver", "org.testng.xml.DefaultXmlWeaver");
  }

  public static boolean isTestMode() {
    return Boolean.parseBoolean(System.getProperty("testng.testmode"));
  }

  public static boolean shouldSkipUsingCallerClassLoader() {
    return Boolean.parseBoolean(System.getProperty(SKIP_CALLER_CLS_LOADER));
  }

  public static boolean useStrictParameterMatching() {
    return Boolean.parseBoolean(System.getProperty("strictParameterMatch"));
  }

  public static String orderMethodsBasedOn() {
    return System.getProperty("testng.order", Systematiser.Order.INSTANCES.getValue());
  }

  public static String getTestClasspath() {
    return System.getProperty(TEST_CLASSPATH);
  }

  public static boolean useOldTestNGEmailableReporter() {
    return System.getProperty("oldTestngEmailableReporter") != null;
  }

  public static boolean useEmailableReporter() {
    return System.getProperty("noEmailableReporter") == null;
  }

  /**
   * @return - returns true if we would like to run in the Dry mode and false
   *      otherwise.
   */
  public static boolean isDryRun() {
    String value = System.getProperty(TESTNG_MODE_DRYRUN, "false");
    return Boolean.parseBoolean(value);
  }

  /**
   * @return - returns the {@link TimeZone} corresponding to the JVM argument 
   *     -Dtestng.timezone if it was set. If not set, it returns the default timezone
   *     pertaining to the user property user.timezone
   */
  public static TimeZone getTimeZone() {
    String timeZone = System.getProperty("testng.timezone", "");
    if (timeZone.trim().isEmpty()) {
      return TimeZone.getDefault();
    }
    return TimeZone.getTimeZone(timeZone);
  }

  /**
   * @return - true if we would like to enforce Thread affinity when dealing with the
   *     below two variants of execution models:
   *     
    *
  • Ordering priority *
  • Ordering by dependsOnMethods (will not work with dependency on multiple methods) *
*/ public static boolean enforceThreadAffinity() { return Boolean.parseBoolean(System.getProperty(TESTNG_THREAD_AFFINITY, "false")); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy