从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报告。