You are viewing a plain text version of this content. The canonical link for it is here.
Posted to nmaven-commits@incubator.apache.org by ew...@apache.org on 2008/01/05 03:57:59 UTC

svn commit: r609088 - in /incubator/nmaven/trunk: components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/ plugins/dotnet-test-plugin/src/main/java/org/apache/maven/dotnet/plugin/nunit/ plugins/maven-compiler-plugin/src/main/java/org/apache/...

Author: eworley
Date: Fri Jan  4 19:57:58 2008
New Revision: 609088

URL: http://svn.apache.org/viewvc?rev=609088&view=rev
Log:
* Adding test-assemblies to build directories
* Added check to DotnetTestMojo to not attempt to run if test assembly was not compiled (no test source)
* Added step to TestCompilerMojo to generate the test-assemblies target directory and copy over test scoped dependencies

Modified:
    incubator/nmaven/trunk/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/BuildDirectories.java
    incubator/nmaven/trunk/plugins/dotnet-test-plugin/src/main/java/org/apache/maven/dotnet/plugin/nunit/DotnetTestMojo.java
    incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java
    incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java

Modified: incubator/nmaven/trunk/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/BuildDirectories.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/BuildDirectories.java?rev=609088&r1=609087&r2=609088&view=diff
==============================================================================
--- incubator/nmaven/trunk/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/BuildDirectories.java (original)
+++ incubator/nmaven/trunk/components/maven-dotnet-core/src/main/java/org/apache/maven/dotnet/BuildDirectories.java Fri Jan  4 19:57:58 2008
@@ -26,6 +26,7 @@
     BUILD_SOURCES("build-sources"),
     BUILD_SOURCES_MAIN("build-sources/main-sources"),
     BUILD_SOURCES_GENERATED("build-sources/generated-sources"),
+    TEST_ASSEMBLIES("test-assemblies"),
     TEST_SOURCES("test-sources"),
     TEST_SOURCES_MAIN("test-sources/main-sources"),
     TEST_SOURCES_GENERATED("test-sources/generated-sources"),

Modified: incubator/nmaven/trunk/plugins/dotnet-test-plugin/src/main/java/org/apache/maven/dotnet/plugin/nunit/DotnetTestMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/dotnet-test-plugin/src/main/java/org/apache/maven/dotnet/plugin/nunit/DotnetTestMojo.java?rev=609088&r1=609087&r2=609088&view=diff
==============================================================================
--- incubator/nmaven/trunk/plugins/dotnet-test-plugin/src/main/java/org/apache/maven/dotnet/plugin/nunit/DotnetTestMojo.java (original)
+++ incubator/nmaven/trunk/plugins/dotnet-test-plugin/src/main/java/org/apache/maven/dotnet/plugin/nunit/DotnetTestMojo.java Fri Jan  4 19:57:58 2008
@@ -72,6 +72,13 @@
             return;
         }
         
+        // Verify that we have tests to run
+        File testAssembly = new File( project.getBuild().getDirectory(), getTestAssemblyName() );
+        if ( !testAssembly.exists() )
+        {
+            return;
+        }
+        
         // The directory where the test artifact exists
         String outputDirectory = project.getBuild().getDirectory();
 
@@ -109,7 +116,6 @@
 
     private String getTestAssemblyName()
     {
-
         File file = project.getArtifact().getFile();
         String pieces = file.getName().substring( 0, file.getName().lastIndexOf( '.' ) );
         String testAssemblyName = pieces + "-test.dll";

Modified: incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java?rev=609088&r1=609087&r2=609088&view=diff
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/AbstractCompilerMojo.java Fri Jan  4 19:57:58 2008
@@ -73,7 +73,7 @@
     /**
      * @component
      */
-    private DotnetCompilerContext dotnetCompilerContext;
+    protected DotnetCompilerContext dotnetCompilerContext;
 
     /**
      * Performs compilation

Modified: incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java?rev=609088&r1=609087&r2=609088&view=diff
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-compiler-plugin/src/main/java/org/apache/maven/dotnet/plugin/compiler/TestCompilerMojo.java Fri Jan  4 19:57:58 2008
@@ -18,10 +18,17 @@
  */
 package org.apache.maven.dotnet.plugin.compiler;
 
+import java.io.File;
+import java.io.IOException;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.dotnet.ArtifactScope;
 import org.apache.maven.dotnet.BuildDirectories;
 import org.apache.maven.dotnet.compiler.DotnetCompilerConfig;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.codehaus.plexus.util.FileUtils;
 
 /**
  * Maven Mojo for compiling Class files to the .NET Intermediate Language.
@@ -48,7 +55,42 @@
         
         compilerConfig.setTestCompile( true );
         
-        compile( compilerConfig );
+        // Compile the test sources
+        File testAssembly = compile( compilerConfig );
+        
+        // Make sure we performed a compile
+        if ( testAssembly == null ) {
+            return;
+        }
+        
+        // Create and populate the test assemblies directory
+        File testAssemblies =
+            new File( project.getBuild().getDirectory(), BuildDirectories.TEST_ASSEMBLIES.getBuildDirectoryName() );
+
+        if ( !testAssemblies.exists() && !testAssemblies.mkdirs() )
+        {
+            throw new MojoExecutionException( "Unable to create test assemblies directory: " + testAssemblies );
+        }
+
+        Set<Artifact> testDependencies = dotnetCompilerContext.getLibraryDependenciesFor( ArtifactScope.TEST );
+
+        // Copy the test dependencies to the test-assemblies directory
+        try
+        {
+            for ( Artifact testDependency : testDependencies )
+            {
+                File testDependencyFile = testDependency.getFile();
+                File testAssembliesFile = new File( testAssemblies, testDependencyFile.getName() );
+                FileUtils.copyFile( testDependencyFile, testAssembliesFile );
+            }
+
+            File copiedTestAssembly = new File( testAssemblies, testAssembly.getName() );
+            FileUtils.copyFile( testAssembly, copiedTestAssembly );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Unable to copy all test assemblies to execution directory" );
+        }
     }
 
     @Override