Ich möchte das Hochladen von Dateien mit einem AngularJS E2E-Test testen. Wie machen Sie das in e2e-Tests? Ich führe mein Testskript durch Grunzkarma aus.
angularjs
file
file-upload
gruntjs
protractor
Pawan Singh
quelle
quelle
Antworten:
So mache ich es:
path
Modul, um den vollständigen Pfad der Datei aufzulösen, die Sie hochladen möchten.Dies funktioniert nicht auf Firefox. Winkelmesser beschwert sich, weil das Element nicht sichtbar ist. Zum Hochladen in Firefox müssen Sie die Eingabe sichtbar machen. Das ist was ich mache:
quelle
__dirname
verweist manchmal auf ein temporäres Verzeichnis (wahrscheinlich dort, wo Tests vom Testläufer kopiert werden). Sie könnenprocess.cwd()
anstelle von verwenden,__dirname
wenn dies der Fall ist.Sie können nicht direkt.
Aus Sicherheitsgründen können Sie keinen Benutzer simulieren, der eine Datei auf dem System in einer Funktionstestsuite wie ngScenario auswählt.
Mit Protractor sollte es möglich sein, diesen Trick zu verwenden, da es auf WebDriver basiert
Das funktioniert gut:
quelle
Hier ist eine Kombination aus den Ratschlägen von Andres D und davidb583, die mir bei der Bearbeitung dieser ...
Ich habe versucht, Winkelmessertests gegen die flowjs-Kontrollen durchzuführen.
quelle
Das funktioniert bei mir.
quelle
Dies ist, was ich mache, um eine Datei auf Firefox hochzuladen. Dieses Skript macht das Element sichtbar, um den Pfadwert festzulegen:
quelle
Ich habe festgestellt, dass die Dateieingabe in der Web-App, die ich teste, nur in Firefox sichtbar ist, wenn sie mit JavaScript in die Ansicht gescrollt wird. Deshalb habe ich scrollIntoView () in Andres Ds Code hinzugefügt, damit sie für meine App funktioniert:
(Ich habe auch alle Stile für das Dateieingabeelement entfernt.)
quelle
// So laden Sie eine Datei aus C: \ Directory hoch
{
};
quelle
fileToUpload
?Die aktuell dokumentierten Lösungen funktionieren nur, wenn Benutzer jQuery laden. In allen verschiedenen Situationen erhalten Benutzer eine Fehlermeldung: Fehlgeschlagen: $ ist nicht definiert
Ich würde vorschlagen, eine Lösung mit nativem AngularJS-Code zu dokumentieren.
zB würde ich vorschlagen, anstatt vorzuschlagen:
vorschlagen:
Letzteres ist mehr Standard, auf eckigen und wichtiger, erfordern keine Abfrage
quelle