Project Testing: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Created page with "=Internal= * Projects")
 
 
(23 intermediate revisions by the same user not shown)
Line 2: Line 2:


* [[Projects#Patterns|Projects]]
* [[Projects#Patterns|Projects]]
=Testing Files in the Scratch Area of the Project=
==Maven Configuration==
<pre>
...
<properties>
    <novaordis.utilities.version>4.4.0-SNAPSHOT-6</novaordis.utilities.version>
    <test.scratch.directory>target/test-scratch</test.scratch.directory>
</properties>
</pre>
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>
...
<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>
</pre>
==Code==
===Initialization===
<pre>
    ...
    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());
    }
    ...
</pre>
===Access from Test===
<pre>
    ...
   
    scratchDirectory ...
    baseDirectory ...
  ...
   
</pre>
===Cleanup after Test===
<pre>
    ...
    @After
    public void after() throws Exception {
       
        //
        // scratch directory cleanup
        //
        assertTrue(io.novaordis.utilities.Files.rmdir(scratchDirectory, false));
    }
    ...
</pre>
=Accessing Resource Files=
<pre>
String projectBaseDirName = System.getProperty("basedir");
File dir = new File(projectBaseDirName, "src/test/resources/data");
</pre>

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");