以编程方式运行testNG测试时使用AspectJweaver

时间:2019-05-09 02:32:19

标签: testng maven-surefire-plugin allure

我正在使用Java类从Excel文件动态生成testNG xml。我正在使用 allure-cli 在测试执行结束时生成魅力报告。

我在以下配置中使用 maven-surefire-plugin

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20</version>
                <configuration>

                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                    </argLine>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>

当测试由Maven目标和阶段触发时,我能够生成带有完整日志和屏幕快照的诱惑报告,并附有诱惑注释(@ step,@ attachments,@ Story ..)。

但是,当java类触发了测试(生成testNG xml然后运行它)时,我无法获得相同的报告。 生成xml的代码是:-

public static  void runTestNGTests(Map<Integer,List<String>> testMap){

         TestNG myTestNG = new TestNG();     
         XmlSuite mySuite = new XmlSuite();
         mySuite.setName(suiteName);        


         List<XmlTest> myTests = new ArrayList<XmlTest>();

         for(Map.Entry<Integer, List<String>> map : testMap.entrySet()){


             XmlTest myTest = new XmlTest(mySuite);

             myTest.setName(map.getKey()+".) web Test : "+map.getValue().get(0) + " on "+ map.getValue().get(1));        
             myTest.addParameter("Date", map.getValue().get(0));
             myTest.setXmlClasses(Arrays.asList(new XmlClass("com.bravura.tests."+map.getValue().get(1))));

             myTests.add(myTest);
         }



         mySuite.setTests(myTests);

         List<XmlSuite> mySuites = new ArrayList<XmlSuite>();
         mySuites.add(mySuite);

            myTestNG.setXmlSuites(mySuites);
             myTestNG.run(); 
    }
}

我是否必须在我中包含 javaagent:“ $ {settings.localRepository} / org / aspectj / aspectjweaver / $ {aspectj.version} / aspectjweaver-$ {aspectj.version} .jar testNG.xml ,以在诱惑报告中获取正确的测试体日志?

0 个答案:

没有答案