我正在为现有的Java Swing应用程序实现一些测试,这样我就可以安全地重构和扩展代码而不会破坏任何东西.我开始在JUnit中进行一些单元测试,因为这似乎是最简单的入门方法,但现在我的首要任务是创建一些端到端的测试来整体运行应用程序.
我在每个测试中重新启动应用程序,方法是将每个测试方法放在一个单独的测试用例中,并使用fork="yes"Ant的junit任务中的选项.但是,我想要作为测试实现的一些用例涉及用户退出应用程序,这导致调用System.exit(0)的方法之一.这被JUnit视为错误:junit.framework.AssertionFailedError: Forked Java VM exited abnormally.
有没有办法告诉JUnit退出代码为零实际上是否正常?
我知道怎么说
gradle test --tests mypackage.MyTest
Run Code Online (Sandbox Code Playgroud)
但如何指定多个呢?
gradle test --tests mypackage.MyTest,mypackage.model.ModelTest,BasicTests
Run Code Online (Sandbox Code Playgroud)
这似乎只是随机运行其中一项测试。
gradle test --tests mypackage.MyTest mypackage.model.ModelTest BasicTests
Run Code Online (Sandbox Code Playgroud)
这告诉我
在根项目“myproject”中找不到任务“mypackage.model.ModelTest”。
我阅读了很多手册和教程(以及一些 SO 帖子),但发现没有明确提及答案。但我看到有人传递 --tests "somepackage.*" 作为参数,所以我认为空格周围的引号可能会有所帮助。
gradle test --tests "mypackage.MyTest mypackage.model.ModelTest BasicTests"
Run Code Online (Sandbox Code Playgroud)
这不会很快失败,但不幸的是只运行列表中的第一个测试。
所以我想我只是被“--tests”中的复数形式误导了,并且没有办法真正给出一个列表,对吗?