以编程方式运行TestNG的第二个实例并附加测试结果

时间:2014-11-07 17:05:12

标签: java unit-testing maven testng

我有一种情况,我试图从一个项目中重新使用集成测试,另外点击一个几乎完全相同的,基本上是直接传递的REST服务(除了标题之外,端点是相同的)。辅助直通服务是所有公共交互的公共端点。为简化起见,我将public-api称为测试所在的原始服务private-api

我们正在使用改装api实际上将其余的调用与几个黑客组合在一起,以使标题更易于配置。

通过private-api中的故障保护作为集成测试运行时,测试运行正常,但在public-api中,我们有更多的配置需要在启动测试之前以编程方式进行。为此,我写了一个测试方法:

@Test(groups = {"test"})
@Parameters({"xmlTestConfigFilePath"})
public void runCommonTests(String xmlTestConfigFilePath)
{
    log.info("Launching common test library");

    try
    {
        System.setProperty("it.localServiceBaseUrl", "localhost:8080/public-endpoint");

        TestListenerAdapter tla = new TestListenerAdapter();
        TestNG testNG = new TestNG();
        testNG.addListener(tla);
        testNG.setXmlSuites(new LinkedList<>(new Parser(xmlTestConfigFilePath).parse()));
        testNG.run();
    }
    catch (Exception e)
    {
        log.error("Exception thrown while executing common tests", e);
        assertTrue(false);
    }
    assertTrue(true);
}

注意: xmlTestConfigFilePath故意与-DsuiteXmlFile不同,以允许常规测试的辅助xml配置

问题是,当我以这种方式运行时,我没有从常用测试中获得任何有用的输出。运行mvn clean test会产生以下输出:

===============================================
wfm_public_api_suite
Total tests run: 1, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 6
===============================================

没有堆栈跟踪,没什么用处。有没有办法将常见测试运行的结果附加到&#34;驱动程序&#34;测试运行?以某种方式将它添加到会话中?

0 个答案:

没有答案