Project Testing: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 12: Line 12:


<properties>
<properties>
    <novaordis.utilities.version>4.4.0-SNAPSHOT-6</novaordis.utilities.version>
     <test.scratch.directory>target/test-scratch</test.scratch.directory>
     <test.scratch.directory>target/test-scratch</test.scratch.directory>
</properties>
</properties>
Line 17: Line 18:
</pre>
</pre>


Note that the below section must be declared under the <plugins> and not <pluginManagement>:
Note that the below section must be declared under the <plugins> and not <pluginManagement>. The novaordis-utilities dependency is necessary for its Files utilities.


<pre>
<pre>
Line 27: Line 28:
             <groupId>org.apache.maven.plugins</groupId>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-antrun-plugin</artifactId>
             <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
             <dependencies>
             <dependencies>
                 <dependency>
                 <dependency>
Line 49: Line 51:
         </plugin>
         </plugin>
     </plugins>
     </plugins>
  ...
  <dependencies>
        <dependency>
            <groupId>io.novaordis.utilities</groupId>
            <artifactId>novaordis-utilities</artifactId>
            <version>${novaordis.utilities.version}</version>
            <scope>test</scope>
        </dependency>
  </dependencies>
   ...
   ...
</build>
</build>
Line 62: Line 73:
     ...
     ...


     private File scratchDirectory;
     protected File scratchDirectory;
    protected File baseDirectory;


     @Before
     @Before
Line 70: Line 82:
         scratchDirectory = new File(projectBaseDirName, "target/test-scratch");
         scratchDirectory = new File(projectBaseDirName, "target/test-scratch");
         assertTrue(scratchDirectory.isDirectory());
         assertTrue(scratchDirectory.isDirectory());
        baseDirectory = new File(System.getProperty("basedir"));
        assertTrue(baseDirectory.isDirectory());
     }
     }


Line 75: Line 90:


</pre>
</pre>


===Access from Test===
===Access from Test===
Line 84: Line 98:
      
      
     scratchDirectory ...
     scratchDirectory ...
    baseDirectory ...


   ...
   ...

Latest revision as of 20:44, 19 April 2017

Internal

Testing Files in the Scratch Area of the Project

Maven Configuration


...

<properties>
    <novaordis.utilities.version>4.4.0-SNAPSHOT-6</novaordis.utilities.version>
    <test.scratch.directory>target/test-scratch</test.scratch.directory>
</properties>

Note that the below section must be declared under the <plugins> and not <pluginManagement>. The novaordis-utilities dependency is necessary for its Files utilities.

...

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <dependencies>
                 <dependency>
                     <groupId>org.apache.ant</groupId>
                     <artifactId>ant</artifactId>
                     <version>1.7.0</version>
                  </dependency>
              </dependencies>
              <executions>
                  <execution>
                      <phase>generate-test-resources</phase>
                               <configuration>
                          <tasks>
                              <mkdir dir="${test.scratch.directory}" />
                          </tasks>
                      </configuration>
                      <goals>
                          <goal>run</goal>
                      </goals>
                 </execution>
             </executions>
         </plugin>
    </plugins>
   ...
   <dependencies>
        <dependency>
            <groupId>io.novaordis.utilities</groupId>
            <artifactId>novaordis-utilities</artifactId>
            <version>${novaordis.utilities.version}</version>
            <scope>test</scope>
        </dependency>
   </dependencies>
   ...
</build>

Code

Initialization


    ...

    protected File scratchDirectory;
    protected File baseDirectory;

    @Before
    public void before() throws Exception {

        String projectBaseDirName = System.getProperty("basedir");
        scratchDirectory = new File(projectBaseDirName, "target/test-scratch");
        assertTrue(scratchDirectory.isDirectory());

        baseDirectory = new File(System.getProperty("basedir"));
        assertTrue(baseDirectory.isDirectory());
    }

    ...

Access from Test


    ...
    
    scratchDirectory ...

    baseDirectory ...

   ...
    

Cleanup after Test


    ...

    @After
    public void after() throws Exception {
        
        //
        // scratch directory cleanup
        //

        assertTrue(io.novaordis.utilities.Files.rmdir(scratchDirectory, false));

    }

    ...

Accessing Resource Files

String projectBaseDirName = System.getProperty("basedir");
File dir = new File(projectBaseDirName, "src/test/resources/data");