Korzystanie CLI Aurelia i zadania domyślne, które są włączone, nie jestem w stanie wykorzystać klas pomocniczych, które są zlokalizowane w folderze testowym w moich testów jednostkowych.
Szczegóły
Począwszy aplikacji próbki utworzonej z au nowy, mam contrived klasy pomocnika znajdujący się wewnątrz 'test/util/helper.ts':
export class Helper {
Property : string;
}
Ta klasa jest importowany przez testowym pliku/jednostkę/app.spec.ts:
import {App} from '../../src/app';
import {Helper} from "../util/helper";
describe('the app',() => {
it('says hello',() => {
let h = new Helper();
h.Property = "Testing";
expect(h.Property).toBe("Testing");
expect(new App().message).toBe('Hello World!');
});
});
podejście # 1 - Wiązanie Mam zmodyfikowany plik aurelia.json w kilku miejscach:
Zmień źródło kompilatora maszynopis zawierać pliki w folderze testowym
"transpiler": { "id": "typescript", "displayName": "TypeScript", "fileExtension": ".ts", "dtsSource": [ "./typings/**/*.d.ts", "./custom_typings/**/*.d.ts" ], "source": ["src\\**\\*.ts","test\\**\\*.ts"] },
zmodyfikować wiązkę do aplikacji wykluczyć dowolny plik z folderu testowego
{ "name": "app-bundle.js", "source": { "include": [ "[**/*.js]", "**/*.{css,html}" ], "exclude": [ "**/test/**/*" ] } },
Dodaj nowy pakiet (test-util-bundle), który zawiera pliki z testu \ util Folder i wyłącza pliki w src i folderów test/jednostkowych
{ "name": "test-util-bundle.js", "source": { "include": [ "[**/*.js]" ], "exclude": [ "**/src/**/*", "**/test/unit/**/*" ] } },
Po łączenie aplikacji z kompilacji 'au', mam trzy zestawy (app/vendor/test-util), z test- util-bundle.js z wiązki definiując klasę pomocniczą tak:
define('../test/util/helper',["require", "exports"], function (require, exports) {
"use strict";
var Helper = (function() {
function Helper() {
}
return Helper;
}());
exports.Helper = Helper;
});
podejrzewam jest to główny problem, ale nie, że zna RequireJS.
Kiedy zrobić próbę uruchomienia „au” test nie powiedzie się z powodu następującego błędu:
11 10 2016 12:05:24.606:DEBUG [middleware:source-files]: Fetching C:/git/aurelia-cli-testing/test/test/util/helper
11 10 2016 12:05:24.608:WARN [web-server]: 404: /base/test/test/util/helper
Chrome 53.0.2785 (Windows 7 0.0.0) ERROR
Uncaught Error: Script error for "C:/git/aurelia-cli-testing/test/test/util/helper", needed by: C:/git/aurelia-cli-testing/test/util/helper
http://requirejs.org/docs/errors.html#scripterror
at C:/git/aurelia-cli-testing/scripts/vendor-bundle.js:3763
Uwaga: Działa to dobrze jeśli ja przenieść helper.ts złożyć pod drzewem src (jako gotowe here). To wszystko jest dostępne here, jeśli chcesz zobaczyć to zachowanie.
Podejście # 2 - Bez splatania klasie użytkowej
- Zmienić karma.conf.js
let testSrc = [
{ pattern: project.unitTestRunner.source, included: false },
{ pattern: "test/util/**/*.ts", included: false },
'test/aurelia-karma.js'
];
...
preprocessors: {
[project.unitTestRunner.source]: [project.transpiler.id],
["test/util/**/*.ts"]: [project.transpiler.id]
},
Dzięki tej modyfikacji (nie powiązanie klasie użytkowej) karma wytwarza się następujący błąd:
18 10 2016 16:56:59.151:DEBUG [middleware:source-files]: Fetching C:/git/aurelia-cli-testing/test/util/helper
18 10 2016 16:56:59.152:WARN [web-server]: 404: /base/test/util/helper
Chrome 53.0.2785 (Windows 7 0.0.0) ERROR
Uncaught Error: Script error for "C:/git/aurelia-cli-testing/test/util/helper", needed by: C:/git/aurelia-cli-testing/test/unit/app.spec.js
http://requirejs.org/docs/errors.html#scripterror
at C:/git/aurelia-cli-testing/scripts/vendor-bundle.js:3763
Dziękuję za przeczytanie, każda pomoc będzie bardzo mile widziane!
Czy używasz karmy jako swojego biegacza testowego? Jeśli tak, to czy dodałeś nową lokalizację pliku do swojej konfiguracji karmy? –
Używam biegacza testu karmy. Plik karma.conf.js pozostaje oryginalnym plikiem wygenerowanym z polecenia "au new". Patrząc na plik, nie jestem do końca pewien, gdzie dodać nową lokalizację pliku. Nowy pakiet jest dodawany do pola "pliki" konfiguracji wysyłanej do karmy, jeśli o to pytasz. –