…so that we can write unit tests for code in the main process. Below a
list of conventions we'll be adopting:
1. Use mocha as the test framework.
2. Use chai as the assertion library.
3. Name specs `foo-bar.spec.js`, to prevent the renderer process from
running specs written fro the main process e.g. when calling
`atom --test spec`.
4. Write specs in ES6.
Although somewhat inconsistent with the conventions we use for renderer
process specs, this will hopefully be a first step towards migrating our
entire Jasmine 1.3 test suite to a more modern environment.
* Remove Windows/Linux run-specs code. There is little value in keeping those
code paths, given that we don't run specs on those platforms; if we ever need
it again, we can restore it from the git history.
* Use ELECTRON_ENABLE_LOGGING=true. This allows us to capture the output of
calls to `console.warn` and `console.log`, which are useful to log out Grim
deprecations.
* Remove `logDeprecations` in build/spec-task.coffee. This method used to format the output captured on stderr to strip out "[Console]" noise from deprecations.
This code path was not running anymore because we started using stdio:
'inherit' in #10838, which prevents stderr output to be captured. This doesn't
seem a huge deal, so long as those deprecations get logged to screen.
This is to ensure successful database connection. Since core specs and
package specs are run at the same time and both open an indexedDB
connection, there were occasional core spec failures due to failed
database connection.
- Add Appveyor badge
- Add Appveyor.yml definition, with encrypted ATOM_ACCESS_TOKEN
- Add cibuild.cmd script to launch cibuild on Windows
- Prepare to release Atom on Windows from Appveyor (but don't do it yet)
- Reduce dependence on JANKY in ci scripts + tasks
- Suppress release activities on PRs for Travis and Appveyor
- Cache ~/.atom/.apm, ~/.atom/.node-gyp/.atom, and ~/.atom/.npm on Appveyor
We need to run specs in series on the Travis Build, because workers have less
than 2 cores: trying to parallelize jobs on such machines increases
context-switching, thus making specs slower and, as a result, flakier.