Author: dfabulich
Date: Thu May  1 20:25:29 2008
New Revision: 652745

URL: http://svn.apache.org/viewvc?rev=652745&view=rev
Log:
[SUREFIRE-474] Allow TestNG to use its built-in HTML Reporter.  TestNG's 
reporter works only at test time, so we just enable the default HTML reports at 
runtime, but allow the user to manually disable them with the 
usedefaultlisteners option.  Special case for TestNG 4.7, which drops its 
default XML files in the surefire-reports directory inappropriately; in that 
case, usedefaultlisteners is false by default.

Modified:
    maven/surefire/trunk/maven-surefire-plugin/src/site/apt/examples/testng.apt
    
maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
    
maven/surefire/trunk/surefire-integration-tests/src/test/resources/testng-listener-reporter/pom.xml
    
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java
    
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java

Modified: 
maven/surefire/trunk/maven-surefire-plugin/src/site/apt/examples/testng.apt
URL: 
http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-plugin/src/site/apt/examples/testng.apt?rev=652745&r1=652744&r2=652745&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-plugin/src/site/apt/examples/testng.apt 
(original)
+++ maven/surefire/trunk/maven-surefire-plugin/src/site/apt/examples/testng.apt 
Thu May  1 20:25:29 2008
@@ -126,6 +126,7 @@
 * Using custom listeners and reporters
 
   TestNG provides support for attaching custom listeners, reporters, 
annotation transformers and method interceptors to your tests.
+  By default, TestNG attaches a few basic listeners to generate HTML and XML 
reports.
   
   You can configure multiple custom listeners like this:
 
@@ -137,6 +138,10 @@
     <configuration>
       <properties>
         <property>
+          <name>usedefaultlisteners</name>
+          <value>false</value> <!-- disabling default listeners is optional -->
+        </property>
+        <property>
           <name>listener</name>
           
<value>com.mycompany.MyResultListener,com.mycompany.MyAnnotationTransformer,com.mycompany.MyMethodInterceptor</value>
         </property>

Modified: 
maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
URL: 
http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java?rev=652745&r1=652744&r2=652745&view=diff
==============================================================================
--- 
maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
 (original)
+++ 
maven/surefire/trunk/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportParser.java
 Thu May  1 20:25:29 2008
@@ -68,7 +68,7 @@
         {
             File reportsDirectory = reportsDirectories[i];
             if ( !reportsDirectory.exists() ) continue;
-            String[] xmlReportFiles = getIncludedFiles( reportsDirectory, 
"*.xml", "*.txt, testng-failed.xml, testng-results.xml" );
+            String[] xmlReportFiles = getIncludedFiles( reportsDirectory, 
"*.xml", "*.txt, testng-failed.xml, testng-failures.xml, testng-results.xml" );
             for ( int j = 0; j < xmlReportFiles.length; j++ )
             {
                 File xmlReport = new File( reportsDirectory, xmlReportFiles[j] 
);

Modified: 
maven/surefire/trunk/surefire-integration-tests/src/test/resources/testng-listener-reporter/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/testng-listener-reporter/pom.xml?rev=652745&r1=652744&r2=652745&view=diff
==============================================================================
--- 
maven/surefire/trunk/surefire-integration-tests/src/test/resources/testng-listener-reporter/pom.xml
 (original)
+++ 
maven/surefire/trunk/surefire-integration-tests/src/test/resources/testng-listener-reporter/pom.xml
 Thu May  1 20:25:29 2008
@@ -57,6 +57,7 @@
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
           <properties>
+            
<property><name>usedefaultlisteners</name><value>false</value></property>
             
<property><name>listener</name><value>listenReport.ResultListener,listenReport.SuiteListener</value></property>
             
<property><name>reporter</name><value>listenReport.Reporter</value></property>
           </properties>

Modified: 
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java
URL: 
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java?rev=652745&r1=652744&r2=652745&view=diff
==============================================================================
--- 
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java
 (original)
+++ 
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGExecutor.java
 Thu May  1 20:25:29 2008
@@ -54,7 +54,7 @@
                             String classifier, ReporterManager reportManager, 
SurefireTestSuite suite, File reportsDirectory )
         throws TestSetFailedException
     {
-        TestNG testng = new TestNG( false );
+        TestNG testng = new TestNG( true );
         Configurator configurator = getConfigurator( version );
         configurator.configure( testng, options );
         postConfigure( testng, testSourceDirectory, classifier, reportManager, 
suite, reportsDirectory );
@@ -66,7 +66,7 @@
                             String classifier, ReporterManager reportManager, 
SurefireTestSuite suite, File reportsDirectory )
         throws TestSetFailedException
     {
-        TestNG testng = new TestNG( false );
+        TestNG testng = new TestNG( true );
         Configurator configurator = getConfigurator( version );
         configurator.configure( testng, options );
         postConfigure( testng, testSourceDirectory, classifier, reportManager, 
suite, reportsDirectory );
@@ -112,8 +112,6 @@
 
         TestNGReporter reporter = createTestNGReporter( reportManager, suite );
         testNG.addListener( (Object) reporter );
-        attachNonStandardReporter( testNG, "org.testng.reporters.XMLReporter" 
);
-        attachNonStandardReporter( testNG, 
"org.testng.reporters.FailedReporter" );
         
         // FIXME: use classifier to decide if we need to pass along the source 
dir (onyl for JDK14)
         if ( sourcePath != null )

Modified: 
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
URL: 
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java?rev=652745&r1=652744&r2=652745&view=diff
==============================================================================
--- 
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
 (original)
+++ 
maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/conf/AbstractDirectConfigurator.java
 Thu May  1 20:25:29 2008
@@ -42,6 +42,7 @@
         options.put( "excludedgroups", new Setter( "setExcludedGroups", 
String.class ) );
         options.put( "junit", new Setter( "setJUnit", Boolean.class ) );
         options.put( "threadcount", new Setter( "setThreadCount", int.class ) 
);
+        options.put( "usedefaultlisteners", new Setter( 
"setUseDefaultListeners", boolean.class ) );
         this.setters = options;
     }
 
@@ -49,6 +50,9 @@
     {
         // kind of ugly, but listeners are configured differently
         final String listeners = (String) options.remove("listener");
+        // DGF In 4.7, default listeners dump XML files in the 
surefire-reports directory,
+        // confusing the report plugin.  This was fixed in later versions.
+        testng.setUseDefaultListeners( false );
         for ( Iterator it = options.entrySet().iterator(); it.hasNext(); )
         {
             Map.Entry entry = (Map.Entry) it.next();


Reply via email to