Ich versuche, eine QUnit Umgebung mit requirejs und grunt-contrib-qunit einzurichten. HierWie grunt Aufgabe für requirejs und qunit einrichten
ist das, was ich habe.
gruntfile:
qunit: {
all: {
options: {
urls: [
'http://localhost:8000/qunit/qunit-test-suite.html'
]
}
}
},
connect: {
server: {
options: {
port: 8000,
base: '.'
}
}
},
QUnit-test-suite.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>QUnit Tests Suite: travis CI Test</title>
<link rel="stylesheet" href="../components/libs/qunit/qunit/qunit.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="../components/libs/qunit/qunit/qunit.js"></script>
<script>
QUnit.config.autoload = false;
QUnit.config.autostart = false;
</script>
<script data-main="qunit" src="../components/libs/requirejs/require.js"></script>
</body>
</html>
qunit.js:
require.config({
baseUrl: "../",
paths: {
'jquery': 'components/libs/jquery/dist/jquery.min',
// Test for Foo
'foo': 'components/app/foo/foo',
'test-Foo': 'components/app/foo/test-Foo'
},
shim: {
'QUnit': {
exports: 'QUnit',
init: function() {
QUnit.config.autoload = false;
QUnit.config.autostart = false;
}
}
}
});
require(['test-Foo'], function (Foo) {
QUnit.load();
QUnit.start();
});
Test Foo.js:
define(['foo'], function(Foo) {
'use strict';
module("Foo");
test("Foo return Test", function() {
equal(Foo.foo(), "foo", "Function should return 'foo'");
equal(Foo.oof(), "oof", "Function should return 'oof'");
});
test("Bar return Test", function() {
equal(Foo.bar(), "barz", "Function should return 'bar'");
});
});
Problem ist, dass alles gut funktioniert, wenn ich die test-suite.html in meinem Browser öffne. Einmal PhantomJS schickte ich die folgende Fehlermeldung erhalten:
Running "connect:server" (connect) task
Started connect web server on http://localhost:8000
Running "qunit:all" (qunit) task
Testing http://localhost:8000/qunit/qunit-test-suite.html
>> PhantomJS timed out, possibly due to a missing QUnit start() call.
Warning: 1/1 assertions failed (0ms) Use --force to continue.
Aborted due to warnings.
Voll Setup: https://github.com/markusfalk/test-travis
Testlauf: https://travis-ci.org/markusfalk/test-travis
Vielen Dank für jede Hilfe :)
Ist die Brücke die Problem? Was könnte dagegen getan werden? http://StackOverflow.com/a/18433173/2538388 Aber ich lade tatsächlich Qunit innerhalb des HTML und nicht über requireJS – Markus
Ich habe gerade herausgefunden, dass die Verwendung von [email protected] dieses Setup funktioniert. Vielleicht hat es mit dem Update zu tun, das sie gemacht haben: v0.6.0 Add noGlobals Option, weitergeleitet an QUnit. Melden Sie den richtigen Beendigungscode, um basierend auf Fehlern zu grunzen. Fügen Sie Unterstützung für AMD hinzu. – Markus
Ich habe das Setup auf etwas umgestellt, das Jörn Zaefferer vorgeschlagen hatte (https://github.com/markusfalk/test-travis/tree/20150411_falk_require-qunn-as-amd/qunn), aber es läuft immer noch ab (https: // travis -ci.org/markusfalk/test-travis/builds/58909816) – Markus