2016-04-15 15 views
0

Ich führe Tests aus, wo ich eine PDF-Datei von einer Webseite herunterlade, bestätige, dass sie in den Download-Ordner gegangen ist, und lösche sie (um zu verhindern, dass der Ordner von PDFs überflutet wird).Ruby-Datei löschen Gurke

Wenn Sie versuchen, eine Platzhalterkarte im Dateipfad zu verwenden, damit andere diesen Test auf ihrem Computer ausführen können, erhalte ich die Fehlermeldung, dass die Datei nicht existiert.

Dies ist mein Code:

pdf_file = ("C:/Users/**/Downloads/myfile.pdf") 

And(/^I can see the downloaded PDF$/) do 
    puts Dir['C:/**/**/Downloads/myfile.pdf'].last 
File.delete(pdf_file) 
end 

Es ist seltsam, dass die Platzhalter funktionieren, wenn innerhalb der Dir bestätigt.

Sobald ich den tatsächlichen Benutzernamen in den Dateipfad einfügt, funktioniert es. Gibt es da irgendwie um das zu umgehen?

Antwort

1

Nicht sicher, ob ich das richtig lese, aber - basierend auf dem Code - übergeben Sie eine Zeichenfolge, die Sternchen enthält, an File.delete. Sie müssen Dir::[] für diese Zeichenfolge aufrufen, um die Platzhalterkonvertierung (en) auszuführen, bevor Sie sie an File.delete übergeben. Zum Beispiel:

File.delete(Dir["C:/Users/**/Downloads/myfile.pdf"].last) 
+0

Das war richtig, danke – Tom