intellij junit @RunWith没解决

时间:2017-03-02 09:00:21

标签: java eclipse intellij-idea junit

我有以下测试代码:

package soundSystem;

import static org.junit.Assert.*;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


@RunWith(SpringJUnit4ClassRunner.class )
@ContextConfiguration(classes = CDPlayerConfig.class)

public class SonyCDPlayerTest {

@Autowired
private ICompactDisk cd;

@Test
public void cdShouldNotBeNull() {
    assertNotNull(cd);
}

}

这是一个maven项目,问题是在eclipse中运行的代码完全相同,但在intellij中没有。

我无法找到解决@RunWith

的方法

screen shot from intellij

2 个答案:

答案 0 :(得分:10)

在JUnit 5.0及更高版本(现在正在使用最新的春季版本)中,@RunWith批注已替换为@ExtendWith

示例:

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = { SpringTestConfiguration.class })
public class GreetingsSpringTest {
    // ...
}

引自Baeldung:

请注意,SpringExtension.class由Spring 5提供并集成 将Spring TestContext Framework集成到JUnit 5中。

参考:https://www.baeldung.com/junit-5-runwith

答案 1 :(得分:4)

简单:您的IDE 配置为进行单元测试。

换句话说:您缺少所有 JUnit相关类。您可以看到所有这些JUnit导入都带有下划线;因为IntelliJ根本不知道包含相应类的JAR。

请参阅here了解如何解决此问题。