java - 未在 IntelliJ 中找到匹配方法 main 的测试

标签 java intellij-idea junit junit4 powermock

我的类是一个测试类,它具有以下结构:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.modules.junit4.PowerMockRunner;

@RunWith(PowerMockRunner.class)
public class MyClassTest {

    public static void main(String[] args) {
        System.out.println("in main");
    }

    @Test
    public void maxTest() {
        System.out.println("test");
    }

}

如果我右键单击 main 方法 > 运行“main”,它会抛出以下异常:

java.lang.Exception: No tests found matching Method main(MyClassTest) from org.junit.internal.requests.ClassRequest@26aa12dd
    at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:35)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:41)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

如果我在类名上按右键 > Run 'MyClassTest.main()' 它可以正常打印:

in main

如果我注释掉 @RunWith(PowerMockRunner.class),两种情况下一切正常。

如果我使用 @RunWith(MockitoJUnitRunner.class) 而不是 @RunWith(PowerMockRunner.class),也会出现同样的问题。

为什么会有这种差异?

详细信息:

  • Windows 7
  • JUnit 4.12
  • PowerMock 1.6.2
  • Java 8
  • 行家 3
  • IntelliJ IDEA 14.1.3

最佳答案

由于 main 方法没有 @Test 注释而抛出异常。

关于java - 未在 IntelliJ 中找到匹配方法 main 的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30416151/

相关文章:

java - 如何将 Java 资源作为文件获取?

java - HTTPClient代码中的CURL命令

intellij-idea - Android Studio(Intellij Idea)-运行/调试配置-记住要在哪个设备上运行

java - 配置应用服务器找不到Tomcat的地方-IntelliJ IDEA

java - JUnit 5,如何从 BeforeEach 回调中获取参数化测试参数?

java - Numberformat.parse 对于 Java 中的法语语言环境无法正常工作

java - 即使 websocket 连接处于 Activity 状态, session 也已过期

gradle - 在gradle中使用插件

java - 如何使用 JUnit 和 Mockito 测试从数据库获取数据的服务

java - 为什么我不能将嵌入式 EJB 容器与我自己的持久性单元一起使用?