Ich versuche, eine Beispielanwendung in Angular 2 einzurichten, gerade versuche ich, den e2e-Testteil zu testen. Ich habe wenig Wissen über das Jasmine-Framework oder die Winkelmesser-Bibliothek, die Angular 2 verwendet.E2E-Test fehlgeschlagen
Also ich bin nicht sicher, warum ich immer diese Fehlermeldung, wenn ich ng e2e
laufen (I Angular CLI bin mit)
Der Fehler erhalte ich:
[09:41:10] I/direct - Using ChromeDriver directly...
[09:41:10] I/launcher - Running 1 instances of WebDriver
[09:41:12] E/launcher - Error: TSError: ? Unable to compile TypeScript
e2e\app.e2e-spec.ts (16,4): Cannot find name 'browser'. (2304)
e2e\app.e2e-spec.ts (17,19): Cannot find name 'element'. (2304)
e2e\app.e2e-spec.ts (17,27): Cannot find name 'by'. (2304)
e2e\app.e2e-spec.ts (18,5): Supplied parameters do not match any signature of ca
ll target. (2346)
Mein Testfall (app.e2e- spec.ts)
import { WebPage } from './app.po';
describe('web App', function() {
let page: WebPage;
beforeEach(() => {
page = new WebPage();
});
it('should display message saying app works',() => {
page.navigateTo();
expect(page.getParagraphText()).toEqual('Hello World');
});
it('Has a greeting', function() {
browser.get('/index.html');
var greeting = element(by.id('h2Id'));
expect().getText(greeting).toEqual('Hello, World!');
});
});
Protrator.config.js
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/docs/referenceConf.js
/*global jasmine */
var SpecReporter = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
useAllAngular2AppRoots: true,
beforeLaunch: function() {
require('ts-node').register({
project: 'e2e'
});
},
onPrepare: function() {
jasmine.getEnv().addReporter(new SpecReporter());
}
};
'import {browser, Element, durch} von 'Winkelmesser';' Beachten Sie, dass Sie in der Regel diese in einem * Seite Objekt * haben würden (siehe zB [ 'app.po.ts'] (https://github.com/textbook/known-for-web/blob/master/e2e/pages/app.po.ts)), die das Geschäft der tatsächlichen Interaktion mit dem DOM aus dem Test abstrahiert und eine benutzerfreundlichere API verfügbar macht Machen Sie Ihre Tests lesbarer (zB ['app.e2e-spec.ts'] (https://github.com/textbook/known-for-web/blob/master/e2e/app.e2e-spects)) - Der Unterschied zwischen 'page.getGreetingText()' und 'element (by.id ('h2Id')). getText()', in Ihrem Beispiel. So macht es das CLI. – jonrsharpe
Ich sehe, es scheint zu funktionieren, ich nahm an, CLI importiert implizit die Bibliothek, danke für Ihre Antwort – Snedden27
Die CLI enthält diese Importe in der automatisch generierten '.po'-Datei, wo erwartet wird, dass Sie mit der interagieren Browser und spezifische Elemente, nicht in der '.e2e-spec' Datei, wo Sie nicht sind. – jonrsharpe