Allow tests to run in Phantom via testem for CI

This commit is contained in:
Joe Fiorini 2015-07-08 15:38:58 -04:00
parent 572b80c7af
commit c6549f4aca
7 changed files with 71 additions and 56 deletions

View File

@ -3,6 +3,7 @@ SITELIB=$(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib; pr
OFFICIAL ?= no
PACKER ?= packer
GRUNT ?= $(shell [ -t 0 ] && echo "grunt" || echo "grunt --no-color")
TESTEM ?= ./node_modules/.bin/testem
BROCCOLI ?= ./node_modules/.bin/broccoli
NODE ?= node
@ -293,8 +294,8 @@ reports/ui_code: node_modules clean-ui Brocfile.js bower.json Gruntfile.js
$(BROCCOLI) build reports/ui_code -- --no-concat --no-tests --no-styles --no-sourcemaps
# Run UI unit tests
test_ui: node_modules minjs_ci Gruntfile.js
$(GRUNT) karma:ci
test_ui: node_modules minjs_ci
$(TESTEM) ci --file testem.yml -R xunit
# Run API unit tests across multiple Python/Django versions with Tox.
test_tox:

View File

@ -7,8 +7,6 @@ import 'tower/shared/Utilities';
import 'tower/shared/RestServices';
import JobStatusGraph from 'tower/dashboard/graphs/job-status/main';
var sinon = require('sinon');
var resizeHandler = sinon.spy();
window.$.fn.removeResize = angular.noop;

View File

@ -2,7 +2,6 @@ import '../setup-browser';
import {describeModule} from '../describe-module';
import mod from 'tower/shared/multi-select-list/main';
var sinon = require('sinon');
describeModule(mod.name)
.testDirective('multiSelectList', function(test) {

View File

@ -3,8 +3,6 @@ import '../setup-browser';
import {describeModule} from '../describe-module';
import mod from 'tower/shared/multi-select-list/main';
var sinon = require('sinon');
var mockController = {
selectAll: sinon.spy(),
deselectAll: sinon.spy(),

View File

@ -3,8 +3,6 @@ import '../setup-browser';
import {describeModule} from '../describe-module';
import JobStatusGraph from 'tower/dashboard/graphs/job-status/main';
var sinon = require('sinon');
var processErrors = sinon.spy();
describeModule(JobStatusGraph.name)

View File

@ -1,52 +1,68 @@
/* jshint node: true */
var jsdom = require('jsdom').jsdom;
var document = jsdom('tower');
var window = document.parentWindow;
var mocha = require('mocha');
window.mocha = mocha;
window.beforeEach = beforeEach;
window.afterEach = afterEach;
(function() {
var isNode = typeof window === 'undefined';
global.document = document;
global.window = window;
if (!isNode) {
window.expect = chai.expect;
return;
}
var jquery = require('jquery');
global.$ = window.$ = global.jQuery = window.jQuery = jquery;
setupNode();
require('angular/angular');
function setupNode() {
require('angular-mocks/angular-mocks');
var jsdom = require('jsdom').jsdom;
var document = jsdom('tower');
var window = document.parentWindow;
var mocha = require('mocha');
window.mocha = mocha;
window.beforeEach = beforeEach;
window.afterEach = afterEach;
var chai = require('chai');
var expect = chai.expect;
var sinonChai = require('sinon-chai');
var chaiAsPromised = require('chai-as-promised');
var sinon = require('sinon');
var chaiThings = require('chai-things');
global.document = document;
global.window = window;
chai.use(sinonChai);
chai.use(chaiAsPromised);
chai.use(chaiThings);
var jquery = require('jquery');
global.$ = window.$ = global.jQuery = window.jQuery = jquery;
global.angular = window.angular;
global.inject = window.inject;
global.expect = chai.expect;
require('angular/angular');
angular.module('templates', []);
require('../../templates');
require('angular-mocks/angular-mocks');
var d3 = require('d3');
global.d3 = d3;
var chai = require('chai');
var expect = chai.expect;
var sinonChai = require('sinon-chai');
var chaiAsPromised = require('chai-as-promised');
var sinon = require('sinon');
var chaiThings = require('chai-things');
var nv = require('nvd3');
global.nv = nv;
chai.use(sinonChai);
chai.use(chaiAsPromised);
chai.use(chaiThings);
var lodash = require('lodash');
global._ = lodash;
global.angular = window.angular;
global.inject = window.inject;
global.expect = chai.expect;
global.sinon = require('sinon');
var LocalStorage = require('node-localstorage').LocalStorage;
global.localStorage = window.localStorage = new LocalStorage('./scratch');
angular.module('templates', []);
require('../../templates');
var moment = require('moment');
window.moment = moment;
var d3 = require('d3');
global.d3 = d3;
var nv = require('nvd3');
global.nv = nv;
var lodash = require('lodash');
global._ = lodash;
var LocalStorage = require('node-localstorage').LocalStorage;
global.localStorage = window.localStorage = new LocalStorage('./scratch');
var moment = require('moment');
window.moment = moment;
}
})();

View File

@ -1,25 +1,30 @@
---
# before_tests: cd ../../.. && sudo make devjs
framework: mocha
cwd: awx/ui/dist/node-tests
cwd: awx/ui/
port: 7358
src_files:
- tests/**.js
- static/js/**/*.js
- static/lib/**/*.js
disable_watching: true
- tests/**/*.js
serve_files:
- ../tower.concat.js
- tests/templates.js
- tests/test-support.js
- tests/unit/**/*.js
- tests/unit.js
- dist/tower.concat.js
- dist/tests/**/*.js
- dist/tests/unit.js
unsafe_file_serving: true
test_page: tests.html
disable_watching: true
routes:
/awx/ui/dist: /static
/tests.html: ../../packaging/grunt/testem.mustache
/test-loader.js: static/lib/ember-cli-test-loader/test-loader.js
/vendor: ../../node_modules
/angular-mocks.js: dist/lib/angular-mocks/angular-mocks.js
/templates.js: dist/node-tests/templates.js
reporter: xunit
launch_in_dev:
- Mocha
launch_in_ci:
- PhantomJS
launchers:
Mocha:
command: NODE_PATH=awx/ui/dist/node-tests ./node_modules/.bin/mocha awx/ui/dist/node-tests/tests/unit/**/*.js
command: NODE_PATH=awx/ui/dist/node-tests ./node_modules/.bin/mocha $(find awx/ui/dist/node-tests/tests/ -name '*-test.js')