Ist es möglich, zu mischen Testacular (Karma) mit Winkel-Szenario?
Testacular (jetzt Karma) ist genial, so ist Winkel-Szenario. Mit Ihnen zusammen, erweist sich als eine Herausforderung, jedoch. Es ist eine ECKIGE SZENARIO-ADAPTER in Testacular, aber das bricht einfachen tests. Wenn Sie angular-scenario.js selbst Testacular wird führen Sie keine tests in allen. Hat jemand habe diese ordnungsgemäß ausgeführt?
WINKEL-SZENARIO-ADAPTER
Habe ich versucht, dies mit einem banalen test, aber ich sah einige seltsame Verhalten:
Test:
describe('Simple', function(){
it('should compare strings', function(){
expect('foo').toBe('foo');
});
});
Normal mit config:
files = [
JASMINE,
JASMINE_ADAPTER,
// ANGULAR_SCENARIO,
// ANGULAR_SCENARIO_ADAPTER,
'tests/lib/angular/angular.js',
'tests/sample.js'
];
Ausgabe:
$ testacular start
info: Testacular server started at http://localhost:9876/
info (launcher): Starting browser ChromeCanary
info (Chrome 25.0): Connected on socket id KRwEUtKtiaJs3MoiEsNg
Chrome 25.0: Executed 1 of 1 SUCCESS (0.061 secs / 0.003 secs)
Beim hinzufügen der WINKEL-adapter config:
files = [
JASMINE,
JASMINE_ADAPTER,
ANGULAR_SCENARIO,
ANGULAR_SCENARIO_ADAPTER,
'tests/lib/angular/angular.js',
'tests/sample.js'
];
Ausgabe:
$ testacular start
info: Testacular server started at http://localhost:9876/
info (launcher): Starting browser ChromeCanary
info (Chrome 25.0): Connected on socket id 5YZA2fSuNXjmI-yRFGF6
Chrome 25.0 Simple should compare strings FAILED
expect undefined toBe "foo"
/Users/iwein/projects/epec/spa/tests/sample.js:3:9: expected "foo" but was undefined
Chrome 25.0: Executed 1 of 1 (1 FAILED) (0.195 secs / 0.018 secs)
Hinzufügen angular-scenario.js und hoffen, JASMIN-ADAPTER kann damit umgehen.
Habe ich auch versucht zu zählen angular-scenario.js
selber, aber das ist eine Sackgasse.
//inside testacular.conf.js
files = [
JASMINE,
JASMINE_ADAPTER,
'tests/lib/angular/angular.js',
'tests/sample.js'
];
Bekomme ich die Ausgabe:
$ testacular start
info: Testacular server started at http://localhost:9876/
info (launcher): Starting browser ChromeCanary
info (Chrome 24.0): Connected on socket id uEzVQ6tqSu7M7tak4F6v
Chrome 24.0 Array #indexOf() should return -1 when the value is not present FAILED
Expected true to be false.
Error: Expected true to be false.
at null.<anonymous> (/..../tests/sample.js:4:17)
Chrome 24.0: Executed 1 of 1 (1 FAILED) (0.07 secs / 0.004 secs)
Wenn ich angular-Szenario in der Mischung:
//inside testacular.conf.js
files = [
JASMINE,
JASMINE_ADAPTER,
'tests/lib/angular/angular.js',
'tests/lib/angular/angular-scenario.js',
'tests/sample.js'
];
Die tests sind überhaupt nicht laufen:
$ testacular start
info: Testacular server started at http://localhost:9876/
info (launcher): Starting browser ChromeCanary
info (Chrome 24.0): Connected on socket id GcyCTxuvhyFcCaE14BEP
Chrome 24.0: Executed 0 of 0 SUCCESS (0.116 secs / 0 secs)
Hat jemand diese ordnungsgemäß ausgeführt? Was ist mit der true
immer undefined
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können nicht mischen der 2 in einer testacular Konfiguration. Was Sie tun sollten, ist bereiten Sie 2 verschiedene testacular Konfigurationen: eine für die Ausführung von unit-tests und ein weiteres für das ausführen von e2e-tests.
Dann würden Sie laufen testacular zweimal: Erstens zur Durchführung von unit tests und dann e2e-tests. In der Regel bin ich mit unit-tests sehr, sehr Häufig (bei jedem speichern!) während der e2e-tests gerade vor einer commmit (da diese test länger laufen). Wir wollen die schnellstmögliche Rückmeldungen von unit-tests während der e2e-tests bieten die ultimative Sicherheitsnetz und sicherstellen, dass die Teile von Anwendungen schwer Abdeckung mit unit-tests (navigation, UI, etc.) sind die noch korrekt arbeitet.
Dies ist die Technik, die AngularJS Saatgut verwenden, finden Sie die entsprechenden Definitionen hier: https://github.com/angular/angular-seed/tree/master/config
Den Grund
true
wirdundefined
ist, dass Sie mit eckig-Szenario, ist version vonexpect
(nicht Jasmine ' s version), die einen parameter namensfuture
, die evaluieren wird, um ein element oder eine Eigenschaft, sobald die Seite geladen wurde.Winkel-Szenario erwartet, dass die
future
parameter, um ein Objekt mit einemvalue
Eigenschaft. Also, wenn Sie pass intrue
es versuche, den Zugangtrue.value
die Auswertung zuundefined
.expect({value: true}).toEqual(true);
funktioniert einwandfrei.