使用 IntelliJ 运行 JUnit 测试
Posted
技术标签:
【中文标题】使用 IntelliJ 运行 JUnit 测试【英文标题】:Run JUnit test with IntelliJ 【发布时间】:2018-08-26 11:10:16 【问题描述】:我正在使用 IntelliJ 2018.1,我正在尝试运行 TeaVM JUnit 测试,但是从 CTRL + SHIFT + F10 运行测试时,测试被跳过:
@RunWith(TeaVMTestRunner.class)
@SkipJVM
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ShapeTest
static final Logger logger = Logger.getLogger(ShapeTest.class.getName());
@Rule
public final ExpectedException exception = ExpectedException.none();
@Test
public void testGet()
System.out.println("ShapeTest - testGet");
String response = Shape.get("https://httpbin.org/get")
.header("accept", "application/json")
.header("Content-Type", "application/json")
.asJson();
JSONObject json = new JSONObject(response);
String url = json.getString("url");
JSONObject headers = json.getJSONObject("headers");
assertNotNull(json);
assertNotNull(url);
assertNotNull(headers);
System.out.println(json.toString());
但是当使用下面的这个命令从终端运行时,它可以工作:
mvn test -Dteavm.junit.target=target/js-tests -Dteavm.junit.js.runner=h
tmlunit -Dteavm.junit.js.threads=2
这里的任何 IntelliJ/JUnit 专家可能对为什么会发生这种情况有所了解?
【问题讨论】:
当您选择类并从上下文菜单中选择“运行测试”时会发生什么?Test ignored.
这是日志中显示的内容
什么是跳过 jvm?除此之外,我想这可能只是在 intellij 中不起作用的东西。我会转向他们的产品论坛并在那里询问。您经常会在数小时内收到他们支持团队的回复。也许不是在星期天......
【参考方案1】:
您可以在运行配置设置中指定相同的-D
参数。按“运行”(Windows 上的 Alt+Shift+F10,Mac 上的 Ctrl+Alt+R),选择您的运行配置,向右箭头,编辑:
然后在VM options下指定所有-D
参数:
之后,选项将传递给 TeaVM Runner,就像它与 mvn test
命令一起使用一样。
【讨论】:
【参考方案2】:如果您像我一样不熟悉 intellij。我写了junits,只想运行它们。在eclipse中,你去测试类->右键->运行->作为junit。有点像我们这样做。它在intellij中也很相似。转到测试类右键单击并作为junits运行。 如果这样的选项不可用,那么问题可能出在 file->project structure-> module-> source 这里你的测试不能被配置到你的 repo 的 test 文件夹中。 所以,在 project structure-> module->sources 点击 test in module 然后选择 test folder 的路径。然后应用-> 好的。 现在右键单击测试类即可使用“作为测试运行”选项。
【讨论】:
以上是关于使用 IntelliJ 运行 JUnit 测试的主要内容,如果未能解决你的问题,请参考以下文章
选择要运行的配置类型时,在 IntelliJ IDEA 15 中运行 Gradle 测试而不是 Junit 测试
如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试
Junit 单元测试在 intelliJ IDEA 中的安装