2017-01-02 13 views
0

In einem TestNG Test, der in Eclipse Neon.2 läuft, benötige ich den Code meines Tests, um auf ein Programmargument zuzugreifen, das ich in den gesetzt habe Führen Sie die Konfiguration des Tests aus. Das funktioniert, aber das Problem besteht darin, dass TestNG selbst dieses Argument verwendet und scheinbar denkt, dass es eine Datei darstellt. so, wenn der Test läuft, das erste, was in der Eclipse-Konsole erscheint, ist:TestNG verwendet ein Programmargument, das für den Code meines Tests gedacht ist, nicht für TestNG

java.io.IOException: The filename, directory name, or volume label syntax is incorrect 
    at java.io.WinNTFileSystem.canonicalize0(Native Method) 
    at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428) 
    at java.io.File.getCanonicalPath(File.java:618) 
    at org.testng.xml.Parser.parse(Parser.java:151) 
    at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:311) 
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:88) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) 

Ich habe dieses Argument in der Run-Konfiguration für den Test in dem „Argument“ Registerkarte unter „Programm Argumenten“. Das Argument ist homepath=C:/MyFolder und es ist das einzige. In "VM-Argumenten" sind keine Argumente gesetzt.

Gibt es eine Möglichkeit, TestNG zu sagen, ein bestimmtes Programmargument zu ignorieren?

Das TestNG-Plugin ist ver. 6.8.6.20141201_2240, Windows 8.1.

Antwort

1

Wenn Sie "Konfiguration ausführen" für TestNG erstellen, wird die "Programmargumente" für TestNG verwendet, nicht für Ihre App. so, falls Ihre Anwendung einige Kontext gleich Kommandozeilenargument benötigen, können Sie mit -Dfoo=bar in „VM Argumente“, oder mit Umgebungsvariablen und in Ihrer Anwendung sie von bekommen Aufruf System.getProperty() oder System.getenv()

passieren kann
Verwandte Themen