![](/img/trans.png)
[英]How to run JUnit tests from the command line instead of Intellij IDEA?
[英]How to run JUnit tests from the command line if classes are in packages?
ParserTest
類位於包myproject.tests
並存儲在以下目錄結構中:
.
└── myproject
└── tests
└── ParserTest.class
設置當前shell會話的CLASSPATH(沒有-cp
選項,以保持java調用的干凈):
export CLASSPATH=.:/usr/local/lib/java/junit-4.12.jar:/usr/local/lib/java/hamcrest-core-1.3.jar
調用JUnit運行程序並通過測試類作為參數:
java org.junit.runner.JUnitCore myproject/tests/ParserTest
拋出此錯誤:
...
1) initializationError(org.junit.runner.JUnitCommandLineParseResult)
java.lang.IllegalArgumentException: Could not find class [myproject/tests/ParserTest]
...
org.junit.runner.JUnitCore
要求使用參數.
作為目錄和類之間的分隔符,而不是/
。
調用跟蹤看起來像這樣,並以java.lang.Class.forName(classname)
結尾:
JUnitCore.main(args)
└── JUnitCore.runMain(args)
└── JUnitCommandLineParseResult.parse(args)
└── new JUnitCommandLineParseResult().parseArgs(args);
└── JUnitCommandLineParseResult.parseParameters(...);
└── ...
└── org.junit.internal.Classes.getClass(arg);
└── java.lang.Class.forName(className);
用於java.lang.Class.forName(String className)
的JavaDoc說:
參數:className-所需類的全限定名 。
在Java中,完全限定名稱是用編寫的.
不是/
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.