JUnit Console Launcher标签表达式使用疑问:如何筛选同时标记A和B的测试?
JUnit Console Launcher 支持同时匹配多个标签(A & B)吗?
完全支持!你遇到的-t 'A & B'不被识别的问题,本质上是命令行shell的引号转义问题,和JUnit本身的标签表达式支持无关——JUnit Platform确实允许用&来筛选同时带有多个标签的测试,你参考的文档是准确的。
下面针对不同操作系统的shell,给你对应的解决办法:
Windows 环境(CMD 命令提示符)
CMD里的&是命令分隔符,直接写会被当成执行下一个命令,所以需要用^转义,同时用双引号包裹表达式:
java -jar ./junit-platform-console-standalone.jar -cp . -t "A ^& B" --details=verbose
Windows PowerShell / 类Unix Shell(Bash、Zsh等)
这类shell里,用单引号包裹表达式通常就能避免特殊字符被解析:
java -jar ./junit-platform-console-standalone.jar -cp . -t 'A & B' --details=verbose
如果单引号不起作用(比如某些特殊配置的shell),可以用双引号加反斜杠转义&:
java -jar ./junit-platform-console-standalone.jar -cp . -t "A \& B" --details=verbose
额外测试建议
如果还是不确定,可以先简化命令测试标签是否能被正确识别:
# 先测试单个标签是否生效 java -jar ./junit-platform-console-standalone.jar -cp . -t A --details=verbose
确认单个标签能正常筛选后,再添加逻辑与的表达式,这样更容易定位问题。
内容的提问来源于stack exchange,提问作者Sh_Stack
相关产品推荐
相关产品推荐

