从Java Main方法运行TestNG测试

时间:2020-02-23 14:34:39  来源:igfitidea点击:

当我们构建一个Maven项目时,TestNG测试会自动执行。
我们还可以使用Eclipse插件运行TestNG测试。
如果我们没有为IDE安装TestNG插件,而又想在不进行完整构建的情况下运行某些特定的测试,该怎么办?在这种情况下,我们也可以从java main方法运行TestNG测试类。

Java主要方法的TestNG测试

让我们为示例创建一个简单的TestNG测试类和一个TestNG侦听器。

package com.theitroad.main;

import org.testng.annotations.Test;

public class Test5 {

	@Test
	public void test() {
		System.out.println("Running test method");
	}
}
package com.theitroad.main;

import org.testng.ISuite;
import org.testng.ISuiteListener;

public class Test5SuiteListener implements ISuiteListener {

	@Override
	public void onStart(ISuite suite) {
		System.out.println("TestNG suite default output directory = "+suite.getOutputDirectory());
		}

	@Override
	public void onFinish(ISuite suite) {
		System.out.println("TestNG invoked methods = " +suite.getAllInvokedMethods());
	}

}

现在我们要运行" Test5"类测试,还想将" Test5SuiteListener"监听器添加到我们的TestNG测试套件中。
我们可以使用org.testng.TestNG类轻松地做到这一点。

package com.theitroad.main;

import org.testng.TestNG;

public class TestNGMainClass {

	public static void main(String[] args) {
		TestNG testSuite = new TestNG();
		testSuite.setTestClasses(new Class[] { Test5.class });
		testSuite.addListener(new Test5SuiteListener());
		testSuite.setDefaultSuiteName("My Test Suite");
		testSuite.setDefaultTestName("My Test");
		testSuite.setOutputDirectory("/Users/hyman/temp/testng-output");
		testSuite.run();
	}

}

请注意,我还更改了TestNG报告输出目录,设置了测试套件和测试名称。

只需在类上作为Java应用程序运行,它就会在控制台中产生以下输出。

TestNG suite default output directory = /Users/hyman/temp/testng-output/My Test Suite
Running test method
TestNG invoked methods = [Test5.test()[pri:0, instance:com.theitroad.main.Test5@314c508a] 827084938]

===============================================
My Test Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

您还应该检查上面的程序生成HTML报告。