1   package org.apache.maven.surefire.its;
2   
3   
4   import junit.framework.TestCase;
5   import org.apache.maven.it.VerificationException;
6   import org.apache.maven.it.Verifier;
7   import org.apache.maven.it.util.ResourceExtractor;
8   
9   import java.io.File;
10  import java.util.ArrayList;
11  import java.util.List;
12  
13  /**
14   * Test running a single test with -Dtest=BasicTest
15   * 
16   * @author <a href="mailto:dfabulich@apache.org">Dan Fabulich</a>
17   * 
18   */
19  public class TestSingleTest
20      extends TestCase
21  {
22      public void testSingleTest ()
23          throws Exception
24      {
25          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/default-configuration" );
26  
27          Verifier verifier = new Verifier( testDir.getAbsolutePath() );
28          List goals = new ArrayList();
29          goals.add( "test" );
30          goals.add( "-Dtest=BasicTest" );
31          verifier.executeGoals( goals );
32          verifier.verifyErrorFreeLog();
33          verifier.resetStreams();
34          
35          HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, testDir );        
36      }
37      
38      public void testSingleTestDotJava()
39          throws Exception
40      {
41          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/default-configuration" );
42  
43          Verifier verifier = new Verifier( testDir.getAbsolutePath() );
44          List goals = new ArrayList();
45          goals.add( "test" );
46          goals.add( "-Dtest=BasicTest.java" );
47          verifier.executeGoals( goals );
48          verifier.verifyErrorFreeLog();
49          verifier.resetStreams();
50  
51          HelperAssertions.assertTestSuiteResults( 1, 0, 0, 0, testDir );
52      }
53  
54      public void testSingleTestNonExistent()
55          throws Exception
56      {
57          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/default-configuration" );
58  
59          Verifier verifier = new Verifier( testDir.getAbsolutePath() );
60          List goals = new ArrayList();
61          goals.add( "test" );
62          goals.add( "-Dtest=DoesNotExist" );
63  
64          try
65          {
66              verifier.executeGoals( goals );
67              verifier.verifyErrorFreeLog();
68              fail( "Build should have failed" );
69          }
70          catch ( VerificationException e )
71          {
72              // as expected
73          }
74          finally
75          {
76              verifier.resetStreams();
77          }
78          
79          File reportsDir = new File( testDir, "target/surefire-reports" );
80          assertFalse ( "Unexpected reports directory", reportsDir.exists() );
81      }
82  
83      public void testSingleTestNonExistentOverride()
84          throws Exception
85      {
86          File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/default-configuration" );
87  
88          Verifier verifier = new Verifier( testDir.getAbsolutePath() );
89          List goals = new ArrayList();
90          goals.add( "test" );
91          goals.add( "-Dtest=DoesNotExist" );
92          goals.add( "-DfailIfNoTests=false" );
93          verifier.executeGoals( goals );
94  
95          verifier.verifyErrorFreeLog();
96          verifier.resetStreams();
97  
98          File reportsDir = new File( testDir, "target/surefire-reports" );
99          assertFalse ( "Unexpected reports directory", reportsDir.exists() );
100     }
101 }