Ich habe ein Projekt, in dem Intern Unit-Tests in einem anderen Verzeichnisbaum als der getestete Quellcode sein sollen. Etwa wie folgen aus:Laden von Abhängigkeiten außerhalb des Intern-Verzeichnisses beim Ausführen von Tests über Selenium
projectRoot
projectRoot/src
projectRoot/tests
projectRoot/tests/intern.js
projectRoot/tests/node_modules/intern
projectRoot/tests/MyTestSuite.js
im internen Konfigurationsdatei definiere ich ein AMD-Paket, den relativen Pfad mit ../
verwendet src
von der Einheitstestreihe zu erreichen. Hier ist ein Beispiel-Konfiguration:
define({
environments: [ { browserName: 'chrome', platform: 'WINDOWS' }],
webdriver: { host: 'localhost', port: 4444 },
useSauceConnect: false,
loader: {
packages: [
{ name: 'testSuites', location: '.' },
{ name: 'externalDep', location: '../src' }
]
},
suites: [ 'testSuites/MyTestSuite' ]
});
und eine passende Einheit Testsuite
define([ "intern!tdd", "intern/chai!assert","externalDep/ExternalDep"],
function(tdd, assert, ExternalDep) {
tdd.suite("Suite that has external dependency", function() {
tdd.test("Test if external dependency is loaded correctly", function() {
assert(ExternalDep === "hello");
});
});
}
);
Dies funktioniert gut, wenn sie direkt im Browser (client.html) getestet oder Knoten (Client.js). Wenn sie jedoch über Selenium Server (mit runner.js) abgefeuert wird, kann die client.html, die im von Selenium gestarteten Browser ausgeführt wird, die externen Abhängigkeiten nicht finden. Im obigen Beispiel wird versucht, ExternalDep unter http://localhost:9000/__intern/src/ExternalDep.js
anzufordern, was ein 404 ist, da das Verzeichnis src
nicht intern ist.
Ich nehme an, wenn ich intern.js auf dem höchsten gemeinsamen Super-Verzeichnis der Tests und des Quellcodes setzen würde, würde es funktionieren. Aber unser Projekt ist derzeit so angelegt, dass es unpraktisch ist. Gibt es eine Möglichkeit, Quellen zu konfigurieren, die über den Speicherort der internen Konfigurationsdatei hinausgehen, oder habe ich nur einen dummen Fehler gemacht?
Danke!
Ich könnte das gleiche Problem haben; Eröffnet ein Problem hier: https://github.com/theintern/intern/issues/204 – ben