title: Grails IntegrationSpec IllegalStateException
body: <p>After upgrading to 2.4.2 from 2.4.0, I am getting an error when I run my integration tests. It shows that the tests passed, however I am getting an IllegalStateException.</p>
  
  <pre><code>    Failure:  |
  massemailsystem.UserInformationIntegrationSpec
   |
  java.lang.IllegalStateException: Could not find ApplicationContext, configure Grails correctly first
      at grails.util.Holders.getApplicationContext(Holders.java:97)
      at grails.test.spock.IntegrationSpec.$spock_initializeSharedFields(IntegrationSpec.groovy:41)
  </code></pre>
  
  <p>I tried to analyze the tests and I don't see anything out of the ordinary. Heres the full test. I am testing getting information from an LDAP data source</p>
  
  <pre><code>abstract class DirectoryIntegrationSpec extends IntegrationSpec {
  
      DirContextOperations getContext(Map attrs) {
          DirContextAdapter d = new DirContextAdapter()
          attrs.each { k, v -&gt;
              if (v != null) {
                  d.addAttributeValue(k, v)
              }
          }
          d
      }
  }
  
  
  class UserInformationIntegrationSpec extends DirectoryIntegrationSpec {
  
      def dataSource
  
      def setup() {
          new SPRIDEN(pidm: 100, yNumber: 'Y00100', lastName: 'Smith').save(flush: true, failOnError: true)
          new SPBPERS(pidm: 100, prefFirstName: 'Joe', activityDate: new Date(), armedServMedVetInd: 'N').save(flush: true, failOnError: true)
          new SPRTELE(pidm: 100, seqNo: 1, teleCode: 'CE', activityDate: new Date(), primaryInd: 'Y', phoneArea: '330', phoneNumber: '1234567').save(flush: true, failOnError: true)
  
          new SPRIDEN(pidm: 102, yNumber: 'Y00102', lastName: 'Smith').save(flush: true, failOnError: true)
          new SPRTELE(pidm: 102, seqNo: 1, teleCode: 'CE', activityDate: new Date(), primaryInd: 'Y', phoneArea: '330', phoneNumber: '1234567').save(flush: true, failOnError: true)
  
          new SPRIDEN(pidm: 103, yNumber: 'Y00103', lastName: 'Smith').save(flush: true, failOnError: true)
      }
  
      def cleanup() {
      }
  
      @Unroll
      void "test constructor from LDAP for fake #employeeid"() {
          when:
          def context = getContext([employeeid: employeeid, givenname: firstName, sn: lastName, mail: email])
          UserInformation u = new UserInformation(context, username, dataSource)
  
          then:
          u.id == id
          u.firstName == prefFirstName
          u.lastName == lastName
          u.email == email
          u.phone == phone
          u.department == department
          u.username == username
  
          where:
          employeeid | username | id   | firstName | prefFirstName | lastName | email            | phone            | department
          'Y00100'   | 'jsmith' | 100  | 'Joseph'  | 'Joe'         | 'Smith'  | 'jsmith@ysu.edu' | '(330) 123-4567' | null
          "Y00101"   | null     | null | null      | null          | null     | null             | null             | null
          "Y00102"   | 'jsmith' | 102  | 'Joseph'  | 'Joseph'      | 'Smith'  | 'jsmith@ysu.edu' | '(330) 123-4567' | null
          "Y00103"   | 'jsmith' | 103  | 'Joseph'  | 'Joseph'      | 'Smith'  | null             | null             | null
      }
  }
  </code></pre>
  
  <p>Thanks in advance!</p>
  
  <p>EDIT: The test doesn't fail when I run it by itself, only when I run all of my integration tests.</p>