title: onCleanUp() vs onComplete() vs afterLaunch()
body: <p>In Protractor, there is a "global set up" method called <code>onPrepare()</code>, but I'm not completely sure what is meant to be a "global tear down" - there are three relevant methods: <code>onCleanUp</code>, <code>onComplete</code> and <code>afterLaunch</code> that are all called after a test execution.</p>
  
  <p><em>Why</em> does <code>protractor</code> have three methods called after a test run? What is the difference between <code>onCleanUp</code>, <code>onComplete</code> and <code>afterLaunch</code>? </p>
  
  <hr>
  
  <p>I've also noticed that there is an <em>"exit" event</em> that we can attach a callback to (<a href="https://github.com/NickTomlin/protractor-flake/blob/master/src/index.js#L64" rel="noreferrer">example here</a>): </p>
  
  <pre><code>protractor.on('exit', function (status) {
  
  });
  </code></pre>