2017-12-02 1 views
1

Ich habe intern Automatisierungstest von meinem Produkt developing. Ich habe dafür die interne Version 3 benutzt. Aber seit Version 4 von Praktikant angekommen ist, habe ich versucht, mich damit vertraut zu machen. Nun meine Frage ist, wie benutzerdefinierte Argument zu übergeben intern 4. Ich intern 3 i verwendet, um es durch Startbefehl übergeben wie dieseSo übergeben Sie benutzerdefinierte Argument in inern 4

node_modules/intern/runner.js config=/Automation/intern -leaveRemoteOpen arg1=arg1 arg2=arg2 

und diejenigen Argument fangen mit inter.args.arg1.

Aber in Intern 4 Ich beginne Test mit npm test Befehl Ich bin nicht in der Lage, herauszufinden, wie benutzerdefinierte Argument übergeben und wie man es in Code fangen seit Intern 4 verwendet Typoskript.

Antwort

1

Ich habe heute ein bisschen Zeit damit verbracht, daran zu arbeiten, in der Hoffnung, das zu erreichen, was du verlangst.

Ich habe meine eigenen Automatisierungs Rahmen gebaut sowohl in meinem Arbeitsplatz und für mein eigenes Soloprojekt mit Intern 4 und war nicht klar, dass diese Art der Sache mit Intern 4.

Wie es so kompliziert gemacht worden war steht, ich habe das Ergebnis, das Sie suchen, mit der folgenden Lösung erreicht.

Ich führe meine interne funktionale Suite über ein benutzerdefiniertes npm-Skript, wie Sie es bereits beschreiben. Ich habe mein eigenes Skript zu meiner package.json Datei hinzugefügt und sende zwei Parameter ein, die ich myArg1 und myArg2 gerade für dieses Beispiel genannt habe.

Also mein package.json Skript ist wie folgt:

"scripts": { 
    "test-ui": "./node_modules/.bin/intern config=/path_to_my_intern.json_config myArg1 myArg2" 
} 

Jetzt kann ich diese npm run test-ui unter Verwendung auszuführen.

So, wie Sie die zwei Parameter in Ihrem internen Test abrufen? Sie können die folgenden Befehle verwenden:

process.argv[3]; // Will return 'myArg1' 
process.argv[4]; // Will return 'myArg2' 

Grundsätzlich ist die Verwendung von process.argv wird ein Array aller Argumente und meine zwei zusätzliche diejenigen zurückkehren wurden bei Index 3 und Index 4. bestanden in Sie werden in der Befehlszeile Argumente irgendwo finden dieses Array (vielleicht an den gleichen Indexpositionen wie meine).

Hoffe, das hilft!

3

Intern 4 akzeptiert beliebige Konfigurationsargumente wie Intern 3; Sie sind nur ein bisschen anders zugegriffen. In Intern 4 verwenden Sie das Objekt intern.config statt intern.args. Zum Beispiel mit der Befehlszeile:

$ npx intern foo=bar 

ein JS Test das Argument foo zugreifen konnte:

'some test'() { 
    const foo = intern.config.foo; 
} 

Angenommen, Sie verwenden Typoskript, müssen Sie intern.config zu any werfen zu bekommen benutzerdefinierte Argumente:

'some test'() { 
    const foo = (<any>intern.config).foo; 
} 
+0

Um ehrlich zu sein, das ist 100% die beste Antwort. Ich wusste nicht über die Verwendung von 'intern.config', als ich meine Antwort schrieb. Versuchte dies und es funktionierte wunderbar. Danke für das :) – AJC24

Verwandte Themen