如何在命令行指定JUnit5 @ParameterizedTest方法的参数类型?
JUnit5控制台运行@ParameterizedTest时指定方法参数类型的正确方式
你遇到的错误是因为命令里指定方法参数的格式不符合JUnit控制台启动器的要求,带引号的写法会被当成无效参数。
正确的命令格式
指定带参数的测试方法时,直接使用 全限定类名#方法名(参数类型) 的格式即可,注意:
- 参数类型不需要加引号或额外包裹
- 基本类型直接写类型名(比如
int),引用类型写全限定类名(比如java.lang.String)
针对你的测试代码,正确的命令如下:
# 使用长参数名 java -jar junit-platform-console-standalone-1.9.2.jar -cp ./target/ --select-method basic.step03.TestJunit5#test03(int) --details=none # 或者使用短参数名 -m java -jar junit-platform-console-standalone-1.9.2.jar -cp ./target/ -m basic.step03.TestJunit5#test03(int) --details=none
多参数方法的写法示例
如果测试方法有多个参数,比如:
@ParameterizedTest @CsvSource({"1, foo", "2, bar"}) public void testMultiParam(int num, String str) { System.out.println(num + " " + str); }
对应的命令参数就是:
-m basic.step03.TestJunit5#testMultiParam(int,java.lang.String)
运行正确的命令后,你的test03方法会依次输出100、200、300三个参数值。
内容的提问来源于stack exchange,提问作者LowKey
相关产品推荐
相关产品推荐

