title: Cannot override init() function in Swift XCTestCase
body: <p>I'd like to override the init function for XCTestCase in UI testing for a few reasons:</p>
  
  <ul>
  <li>To launch the app, outside of setUp() so that the app doesn't need to relaunch for every test (this is tedious and slows down tests)</li>
  <li>To initialize other classes that provide general navigation through the app, which must me initialized with a test case (<em>self</em>).</li>
  </ul>
  
  <p>What I have now looks like this:</p>
  
  <pre><code>import XCTest
  
  class UITest: XCTestCase {
  
      let app = XCUIApplication()
  
      // Helper packages
      var helper: UITestHelper!
  
      override func setUp() {
          super.setUp()
  
          // Helper package instantiation
          helper = UITestHelper(withTestCase: self, forApp: app)
  
          continueAfterFailure = false
          app.launch()
      }
  
  ... tearDown(), tests ....
  </code></pre>
  
  <p>When I call:</p>
  
  <pre><code>override init() {
      super.init()
      foo()
  }
  </code></pre>
  
  <p>I get <code>Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)</code></p>