Commit b2b6ca5f by Calen Pennington

Record junit reports of jasmine tests

parent ce2cbb74
...@@ -36,8 +36,13 @@ PIPELINE_JS['spec'] = { ...@@ -36,8 +36,13 @@ PIPELINE_JS['spec'] = {
} }
JASMINE_TEST_DIRECTORY = PROJECT_ROOT + '/static/coffee' JASMINE_TEST_DIRECTORY = PROJECT_ROOT + '/static/coffee'
JASMINE_REPORT_DIR = os.environ.get('JASMINE_REPORT_DIR', 'reports/cms/jasmine')
TEMPLATE_CONTEXT_PROCESSORS += ('settings_context_processor.context_processors.settings',)
TEMPLATE_VISIBLE_SETTINGS = ('JASMINE_REPORT_DIR', )
STATICFILES_DIRS.append(REPO_ROOT/'node_modules/phantom-jasmine/lib') STATICFILES_DIRS.append(REPO_ROOT/'node_modules/phantom-jasmine/lib')
STATICFILES_DIRS.append(REPO_ROOT/'node_modules/jasmine-reporters/src')
# Remove the localization middleware class because it requires the test database # Remove the localization middleware class because it requires the test database
# to be sync'd and migrated in order to run the jasmine tests interactively # to be sync'd and migrated in order to run the jasmine tests interactively
...@@ -45,4 +50,4 @@ STATICFILES_DIRS.append(REPO_ROOT/'node_modules/phantom-jasmine/lib') ...@@ -45,4 +50,4 @@ STATICFILES_DIRS.append(REPO_ROOT/'node_modules/phantom-jasmine/lib')
MIDDLEWARE_CLASSES = tuple(e for e in MIDDLEWARE_CLASSES \ MIDDLEWARE_CLASSES = tuple(e for e in MIDDLEWARE_CLASSES \
if e != 'django.middleware.locale.LocaleMiddleware') if e != 'django.middleware.locale.LocaleMiddleware')
INSTALLED_APPS += ('django_jasmine', ) INSTALLED_APPS += ('django_jasmine', 'settings_context_processor')
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jasmine Test Runner</title>
<link rel="stylesheet" type="text/css" href="<%= phantom_jasmine_path %>/vendor/jasmine-1.2.0/jasmine.css">
<script type="text/javascript" src="<%= phantom_jasmine_path %>/vendor/jasmine-1.2.0/jasmine.js"></script>
<script type="text/javascript" src="<%= phantom_jasmine_path %>/vendor/jasmine-1.2.0/jasmine-html.js"></script>
<script type="text/javascript" src="<%= phantom_jasmine_path %>/lib/console-runner.js"></script>
<script type="text/javascript" src="<%= common_coffee_root %>/ajax_prefix.js"></script>
<script type="text/javascript" src="<%= common_coffee_root %>/logger.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/jquery.min.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/jasmine-jquery.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/jquery.cookie.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/CodeMirror/codemirror.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/tiny_mce/jquery.tinymce.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/RequireJS.js"></script>
<script type="text/javascript">
AjaxPrefix.addAjaxPrefix(jQuery, function() {
return "";
});
</script>
<!-- SOURCE FILES -->
<% for src in js_source %>
<script type="text/javascript" src="<%= src %>"></script>
<% end %>
<!-- SPEC FILES -->
<% for src in js_specs %>
<script type="text/javascript" src="<%= src %>"></script>
<% end %>
</head>
<body>
<script type="text/javascript">
var console_reporter = new jasmine.ConsoleReporter()
jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
jasmine.getEnv().addReporter(console_reporter);
jasmine.getEnv().execute();
</script>
</body>
</html>
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<script src="{% static 'jasmine-latest/jasmine-html.js' %}"></script> <script src="{% static 'jasmine-latest/jasmine-html.js' %}"></script>
<script src="{% static 'js/vendor/jasmine-jquery.js' %}"></script> <script src="{% static 'js/vendor/jasmine-jquery.js' %}"></script>
<script src="{% static 'console-runner.js' %}"></script> <script src="{% static 'console-runner.js' %}"></script>
<script src="{% static 'jasmine.junit_reporter.js' %}"></script>
{% load compressed %} {% load compressed %}
{# static files #} {# static files #}
...@@ -37,15 +38,14 @@ ...@@ -37,15 +38,14 @@
<script> <script>
{% block jasmine %} {% block jasmine %}
var console_reporter = new jasmine.ConsoleReporter();
(function() { (function() {
var jasmineEnv = jasmine.getEnv(); var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000; jasmineEnv.updateInterval = 1000;
var trivialReporter = new jasmine.TrivialReporter(); var trivialReporter = new jasmine.TrivialReporter()
jasmineEnv.addReporter(trivialReporter); jasmineEnv.addReporter(trivialReporter);
jasmine.getEnv().addReporter(console_reporter); jasmineEnv.addReporter(new jasmine.ConsoleReporter());
jasmineEnv.addReporter(new jasmine.JUnitXmlReporter('{{ JASMINE_REPORT_DIR }}/'));
jasmineEnv.specFilter = function(spec) { jasmineEnv.specFilter = function(spec) {
return trivialReporter.specFilter(spec); return trivialReporter.specFilter(spec);
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<script type="text/javascript" src="<%= phantom_jasmine_path %>/vendor/jasmine-1.2.0/jasmine-html.js"></script> <script type="text/javascript" src="<%= phantom_jasmine_path %>/vendor/jasmine-1.2.0/jasmine-html.js"></script>
<script type="text/javascript" src="<%= phantom_jasmine_path %>/lib/console-runner.js"></script> <script type="text/javascript" src="<%= phantom_jasmine_path %>/lib/console-runner.js"></script>
<script type="text/javascript" src="<%= jasmine_reporters_path %>/src/jasmine.junit_reporter.js"></script>
<script type="text/javascript" src="<%= common_coffee_root %>/ajax_prefix.js"></script> <script type="text/javascript" src="<%= common_coffee_root %>/ajax_prefix.js"></script>
<script type="text/javascript" src="<%= common_coffee_root %>/logger.js"></script> <script type="text/javascript" src="<%= common_coffee_root %>/logger.js"></script>
<script type="text/javascript" src="<%= common_js_root %>/vendor/jasmine-jquery.js"></script> <script type="text/javascript" src="<%= common_js_root %>/vendor/jasmine-jquery.js"></script>
...@@ -44,30 +45,10 @@ ...@@ -44,30 +45,10 @@
<body> <body>
<script type="text/javascript"> <script type="text/javascript">
var jasmineEnv = jasmine.getEnv(); jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
jasmine.getEnv().addReporter(new jasmine.ConsoleReporter());
var htmlReporter = new jasmine.HtmlReporter(); jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('<%= report_dir %>/'));
var console_reporter = new jasmine.ConsoleReporter() jasmine.getEnv().execute();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.addReporter(console_reporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
};
function execJasmine() {
jasmineEnv.execute();
}
</script> </script>
</body> </body>
......
phantom-jasmine @ a54d435b
Subproject commit a54d435b5556650efbcdb0490e6c7928ac75238a
...@@ -82,7 +82,7 @@ rake test_common/lib/xmodule || TESTS_FAILED=1 ...@@ -82,7 +82,7 @@ rake test_common/lib/xmodule || TESTS_FAILED=1
rake phantomjs_jasmine_lms || TESTS_FAILED=1 rake phantomjs_jasmine_lms || TESTS_FAILED=1
rake phantomjs_jasmine_cms || TESTS_FAILED=1 rake phantomjs_jasmine_cms || TESTS_FAILED=1
rake phantomjs_jasmine_common/lib/xmodule || TESTS_FAILED=1 rake phantomjs_jasmine_common/lib/xmodule || TESTS_FAILED=1
rake phantomjs_jasmine_discussion || TESTS_FAILED=1 rake phantomjs_jasmine_common/static/coffee || TESTS_FAILED=1
rake coverage:xml coverage:html rake coverage:xml coverage:html
......
...@@ -36,7 +36,12 @@ PIPELINE_JS['spec'] = { ...@@ -36,7 +36,12 @@ PIPELINE_JS['spec'] = {
} }
JASMINE_TEST_DIRECTORY = PROJECT_ROOT + '/static/coffee' JASMINE_TEST_DIRECTORY = PROJECT_ROOT + '/static/coffee'
JASMINE_REPORT_DIR = os.environ.get('JASMINE_REPORT_DIR', 'reports/lms/jasmine')
TEMPLATE_CONTEXT_PROCESSORS += ('settings_context_processor.context_processors.settings',)
TEMPLATE_VISIBLE_SETTINGS = ('JASMINE_REPORT_DIR', )
STATICFILES_DIRS.append(REPO_ROOT/'node_modules/phantom-jasmine/lib') STATICFILES_DIRS.append(REPO_ROOT/'node_modules/phantom-jasmine/lib')
STATICFILES_DIRS.append(REPO_ROOT/'node_modules/jasmine-reporters/src')
INSTALLED_APPS += ('django_jasmine', ) INSTALLED_APPS += ('django_jasmine', 'settings_context_processor')
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"coffee-script": "1.6.X", "coffee-script": "1.6.X",
"phantom-jasmine": "0.1.0" "phantom-jasmine": "0.1.0",
"jasmine-reporters": "0.2.1"
} }
} }
...@@ -48,6 +48,7 @@ def template_jasmine_runner(lib) ...@@ -48,6 +48,7 @@ def template_jasmine_runner(lib)
sh("node_modules/.bin/coffee -c #{coffee_files.join(' ')}") sh("node_modules/.bin/coffee -c #{coffee_files.join(' ')}")
end end
phantom_jasmine_path = File.expand_path("node_modules/phantom-jasmine") phantom_jasmine_path = File.expand_path("node_modules/phantom-jasmine")
jasmine_reporters_path = File.expand_path("node_modules/jasmine-reporters")
common_js_root = File.expand_path("common/static/js") common_js_root = File.expand_path("common/static/js")
common_coffee_root = File.expand_path("common/static/coffee/src") common_coffee_root = File.expand_path("common/static/coffee/src")
...@@ -58,6 +59,7 @@ def template_jasmine_runner(lib) ...@@ -58,6 +59,7 @@ def template_jasmine_runner(lib)
js_specs = Dir[spec_glob].sort_by {|p| [p.split('/').length, p]} .map {|f| File.expand_path(f)} js_specs = Dir[spec_glob].sort_by {|p| [p.split('/').length, p]} .map {|f| File.expand_path(f)}
js_source = Dir[src_glob].sort_by {|p| [p.split('/').length, p]} .map {|f| File.expand_path(f)} js_source = Dir[src_glob].sort_by {|p| [p.split('/').length, p]} .map {|f| File.expand_path(f)}
report_dir = report_dir_path("#{lib}/jasmine")
template = ERB.new(File.read("common/templates/jasmine/jasmine_test_runner.html.erb")) template = ERB.new(File.read("common/templates/jasmine/jasmine_test_runner.html.erb"))
template_output = "#{lib}/jasmine_test_runner.html" template_output = "#{lib}/jasmine_test_runner.html"
File.open(template_output, 'w') do |f| File.open(template_output, 'w') do |f|
...@@ -66,6 +68,11 @@ def template_jasmine_runner(lib) ...@@ -66,6 +68,11 @@ def template_jasmine_runner(lib)
yield File.expand_path(template_output) yield File.expand_path(template_output)
end end
def run_phantom_js(url)
phantomjs = ENV['PHANTOMJS_PATH'] || 'phantomjs'
sh("#{phantomjs} node_modules/jasmine-reporters/test/phantomjs-testrunner.js #{url}")
end
[:lms, :cms].each do |system| [:lms, :cms].each do |system|
desc "Open jasmine tests for #{system} in your default browser" desc "Open jasmine tests for #{system} in your default browser"
task "browse_jasmine_#{system}" => :assets do task "browse_jasmine_#{system}" => :assets do
...@@ -78,14 +85,16 @@ end ...@@ -78,14 +85,16 @@ end
desc "Use phantomjs to run jasmine tests for #{system} from the console" desc "Use phantomjs to run jasmine tests for #{system} from the console"
task "phantomjs_jasmine_#{system}" => :assets do task "phantomjs_jasmine_#{system}" => :assets do
phantomjs = ENV['PHANTOMJS_PATH'] || 'phantomjs'
django_for_jasmine(system, false) do |jasmine_url| django_for_jasmine(system, false) do |jasmine_url|
sh("#{phantomjs} node_modules/phantom-jasmine/lib/run_jasmine_test.coffee #{jasmine_url}") run_phantom_js(jasmine_url)
end end
end end
end end
Dir["common/lib/*"].select{|lib| File.directory?(lib)}.each do |lib| STATIC_JASMINE_TESTS = Dir["common/lib/*"].select{|lib| File.directory?(lib)}
STATIC_JASMINE_TESTS << 'common/static/coffee'
STATIC_JASMINE_TESTS.each do |lib|
desc "Open jasmine tests for #{lib} in your default browser" desc "Open jasmine tests for #{lib} in your default browser"
task "browse_jasmine_#{lib}" do task "browse_jasmine_#{lib}" do
template_jasmine_runner(lib) do |f| template_jasmine_runner(lib) do |f|
...@@ -97,26 +106,14 @@ Dir["common/lib/*"].select{|lib| File.directory?(lib)}.each do |lib| ...@@ -97,26 +106,14 @@ Dir["common/lib/*"].select{|lib| File.directory?(lib)}.each do |lib|
desc "Use phantomjs to run jasmine tests for #{lib} from the console" desc "Use phantomjs to run jasmine tests for #{lib} from the console"
task "phantomjs_jasmine_#{lib}" do task "phantomjs_jasmine_#{lib}" do
phantomjs = ENV['PHANTOMJS_PATH'] || 'phantomjs'
template_jasmine_runner(lib) do |f| template_jasmine_runner(lib) do |f|
sh("#{phantomjs} node_modules/phantom-jasmine/lib/run_jasmine_test.coffee #{f}") run_phantom_js(f)
end end
end end
end end
desc "Open jasmine tests for discussion in your default browser" desc "Open jasmine tests for discussion in your default browser"
task "browse_jasmine_discussion" do task "browse_jasmine_discussion" => "browse_jasmine_common/static/coffee"
template_jasmine_runner("common/static/coffee") do |f|
sh("python -m webbrowser -t 'file://#{f}'")
puts "Press ENTER to terminate".red
$stdin.gets
end
end
desc "Use phantomjs to run jasmine tests for discussion from the console" desc "Use phantomjs to run jasmine tests for discussion from the console"
task "phantomjs_jasmine_discussion" do task "phantomjs_jasmine_discussion" => "phantomjs_jasmine_common/static/coffee"
phantomjs = ENV['PHANTOMJS_PATH'] || 'phantomjs'
template_jasmine_runner("common/static/coffee") do |f|
sh("#{phantomjs} node_modules/phantom-jasmine/lib/run_jasmine_test.coffee #{f}")
end
end
...@@ -82,3 +82,5 @@ django_nose==1.1 ...@@ -82,3 +82,5 @@ django_nose==1.1
django-jasmine==0.3.2 django-jasmine==0.3.2
django_debug_toolbar django_debug_toolbar
django-debug-toolbar-mongo django-debug-toolbar-mongo
git+https://github.com/mfogel/django-settings-context-processor.git
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment