使用 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 运行测试

转载IntelliJ IDEA配置JUnit进行单元测试

Junit 单元测试在 intelliJ IDEA 中的安装

Intellij IDEA junit 使用之org.junit不存在

JUnit单元测试--IntelliJ IDEA