Sto provando a configurare un ambiente QUnit usando requirejs e grunt-contrib-qunit.Come impostare il task grunt per requirejs e qunit
Ecco quello che ho.
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'");
});
});
Il problema è che tutto funziona correttamente quando apro il test-suite.html nel mio browser. Una volta inviato a PhantomJS ottengo il seguente errore:
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.
configurazione completa: https://github.com/markusfalk/test-travis
Test Run: https://travis-ci.org/markusfalk/test-travis
Grazie per qualsiasi aiuto :)
Is il ponte del problema? Cosa si potrebbe fare a riguardo? http://stackoverflow.com/a/18433173/2538388 Ma in realtà carico Qunit all'interno dell'HTML e non tramite requireJS – Markus
Ho appena scoperto che l'uso di [email protected] renderà funzionante questa configurazione. Forse ha a che fare con l'aggiornamento che hanno fatto: v0.6.0 Aggiungi l'opzione noGlobals, inoltrata a QUnit. Segnala il codice di uscita corretto a grugnito in base agli errori. Aggiungi supporto per AMD. – Markus
Ho rielaborato l'installazione su qualcosa che Jörn Zaefferer aveva proposto (https://github.com/markusfalk/test-travis/tree/20150411_falk_require-qunit-as-amd/qunit) ma è ancora in timeout (https: // travis -ci.org/markusfalk/test-travis/builds/58909816) – Markus