2017-02-25 4 views
3

Ich frage mich, ob es möglich ist, ein Setup von angular cli Projekt mit Gurke e2e Tests, Winkelmesser Schritte, ohne die Verwendung eines Selen-Server. Wenn ich nach solchen Konfigurationen suche, finde ich nur solche, die selenAddress eingerichtet haben.Angular cli + Winkelmesser + Gurke - Selen

Also, ist es möglich, es ohne es zu betreiben?

Antwort

4

Erfordert eine Serverspezifikation W3C WebDriver

Aus Ihrer Frage läuft, können Sie Protractor ohne Selen-Server laufen? Ja, wenn Sie einen Browser-Treiber verwenden, der der W3C WebDriver Spezifikation entspricht. Wenn also in der Konfigurationsdatei die Einstellung directConnect: true (angular-cli default) eingestellt wird, teilt Winkelmesser dem Programmierer grundsätzlich mit, dass er die Treiber-Binärdatei starten soll. Dann erstellt Protractor einen Treiber-Provider, um mit dieser Binärdatei zu sprechen.

Treiber Anbieter Optionen

Die Treiber-Provider können unterschiedlich sein. Ihre Frage bezog sich auch auf die seleniumAddress. Wie funktioniert das? Grundsätzlich liest der Winkelmesser Ihre Konfigurationsdatei und decides which driver provider to launch. Wenn Sie nicht directConnect verwenden und entschieden haben, die Option seleniumAddress in Ihrer Konfiguration zu verwenden, können Sie entweder eine angehängte Sitzung oder einen gehosteten Treiber starten. Das Anhängen einer Sitzung bedeutet, dass eine vorherige Sitzung ausgeführt wurde und der Progractor Tests mit der Sitzungs-ID startet. Hosted bedeutet, dass Sie Ihren Test gegen einen laufenden Selenal-Standalone-Server gestartet haben. Normalerweise ist der Selenal-Standalone-Server http://localhost:4444.

Es gibt andere Arten von Treiberanbietern, die Ihnen beim Starten Ihrer Tests helfen. Wenn Sie die Bedingung in der Methode buildDriverProvider befolgen, können Sie auswählen und auswählen, welche Sie starten möchten. Offensichtlich (von der Bedingung), wenn Sie directConnect und seleniumAddress haben, werden Sie mit einem Direktverbindungstreiber-Anbieter starten.

Ein kurzer Hinweis auf WebDriver-Manager eine kurze Notiz auf WebDriver-Manager

auch. Wenn Sie Ihre Protractor-Tests in Firefox starten möchten, müssen Sie den Gecko-Treiber herunterladen. Wenn Sie die Option seleniumAddress verwenden, müssen Sie auch den Selenal-Standalone-Server herunterladen. Der angular-cli lädt nur den Chrombrecher mit dem Befehl webdriver-manager update --standalone false --gecko false herunter. Um den Rest herunterzuladen, entfernen Sie einfach die Fahnen, die auf false gesetzt werden: webdriver-manager update

Gurke in Ihrer Konfiguration

So schließlich wollen Sie Gurke mit Winkelmesser. Der Winkelmesser unterstützt die Gurke als kundenspezifischen Rahmen. Sie müssen die protractor-cucumber-framework benötigen. Hoffentlich haben Sie dies auf der configuration in the Protractor-cookbook gefunden.

framework: 'custom', 
frameworkPath: require.resolve('protractor-cucumber-framework'), 
cucumberOpts: { 
    compiler: "ts:ts-node/register", 
    monochrome: true, 
    strict: true, 
    plugin: ["pretty"], 
    require: ['../../stepdefinitions/*.ts', '../../support/*.ts'], 
    //tags help us execute specific scenarios of feature files 
    tags: '@AddScenario,@SubtractScenario,@MultiplyScenario,@DivideScenario,@ModulusScenario' 
} 
+0

Danke. Arbeitet noch daran, aber es sieht vielversprechend aus. – uzilan

1

Sie können Winkelmessertests ohne Selenserver ausführen, indem Sie directConnect: true in Ihrem protractor config verwenden. Beachten Sie jedoch, dass diese Option derzeit nur mit Chrome und Firefox funktioniert.

+0

Danke: Gurke Arbeit zu bekommen

Sie sollten die folgenden Ihrer Konfiguration hinzuzufügen. Angular cli setzt den directConnect standardmäßig auf true. Was ich will, ist herauszufinden, ob jemand ein Setup mit Gurken-Tests hat, die mit eckigem Cli (ohne Selen) laufen, der mich leiten könnte (oder vielleicht könnte ich einen Blick auf die Konfiguration werfen), um zu verstehen, wie man es einrichtet. – uzilan

+0

Nachdem Sie die Frage mehrmals gelesen haben, ist dies die Antwort. Wenn dies nicht die Antwort ist, sollte die Frage überarbeitet werden. – cnishina