title: startKoin in KoinTest-class throws "A KoinContext is already started"
body: <p>I'm using "withTestAppliction" in one of my tests to test if the route works. Before all Tests the DB-Table "cats" should have no entries. To get the DAO I need Koin in this Test but if conflicts with "withTestAppliction" where Koin will also be startet and throws <code>A KoinContext is already started</code></p>
  
  <p>[Update]<br>
  I know I could use something like <code>handleRequest(HttpMethod.Delete, "/cats")</code> but I don't want to expose this Rest-Interface. Not even for testing.</p>
  
  <pre class="lang-kotlin prettyprint-override"><code>@ExperimentalCoroutinesApi
  class CatsTest: KoinTest {
      companion object {
          @BeforeClass
          @JvmStatic fun setup() {
              // once per run
              startKoin {
                  modules(appModule)
              }
          }
  
          @AfterClass
          @JvmStatic fun teardown() {
              // clean up after this class, leave nothing dirty behind
              stopKoin()
          }
      }
  
      @Before
      fun setupTest() = runBlockingTest {
          val dao = inject&lt;CatDAO&gt;()
          dao.value.deleteAll()
      }
  
      @After
      fun cleanUp() {
  
      }
  
      @Test
      fun testCreateCat() {
          withTestApplication({ module(testing = true) }) {
              val call = createCat(predictName("Pepples"), 22)
  
              call.response.status().`should be`(HttpStatusCode.Created)
          }
      }
  
  }
  
  fun TestApplicationEngine.createCat(name: String, age: Int): TestApplicationCall {
      return handleRequest(HttpMethod.Post, "/cats") {
          addHeader(HttpHeaders.ContentType, ContentType.Application.FormUrlEncoded.toString())
          setBody(listOf(
                  "name" to name,
                  "age" to age.toString()
          ).formUrlEncode())
      }
  }
  
  </code></pre>