TestNG использует программный аргумент, предназначенный для кода моего теста, а не для TestNG.

В тесте TestNG, работающем в Eclipse Neon.2, мне нужен код моего теста для доступа к аргументу программы, который я установил в конфигурации выполнения теста. Это работает, но проблема в том, что сам TestNG использует этот аргумент, по-видимому, думая, что он представляет какой-то файл; поэтому, когда тест запускается, первое, что появляется в консоли Eclipse:

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)

Я установил этот аргумент в конфигурации запуска для теста на вкладке «Аргументы» в разделе «Аргументы программы». Аргумент homepath=C:/MyFolder и он единственный. В «аргументах виртуальной машины» не заданы аргументы.

Есть ли способ сказать TestNG игнорировать определенный аргумент программы?

Плагин TestNG вер. 6.8.6.20141201_2240, Windows 8.1.


person SantiBailors    schedule 02.01.2017    source источник


Ответы (1)


если вы создаете «Конфигурацию запуска» для TestNG, «Аргументы программы» используются для TestNG, а не для вашего приложения. поэтому, если вашему приложению нужен какой-либо аргумент командной строки, похожий на контекст, вы можете передать -Dfoo=bar в «аргументах виртуальной машины» или с переменными среды, а в своем приложении получить их, вызвав System.getProperty() или System.getenv()

person XuQing Tan    schedule 05.01.2017