intellij junit @RunWith 未解决

Z.b*_*ter 6 java eclipse junit intellij-idea

我有以下测试代码:

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);
}

}
Run Code Online (Sandbox Code Playgroud)

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

我只是找不到解决@RunWith 的方法

来自 intellij 的屏幕截图

Bas*_*usa 21

@RunWith注解已@ExtendWith在 JUnit 5.0 及更高版本中被替换(现在最新的 spring 版本正在使用)。

例子:

@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = { SpringTestConfiguration.class })
public class GreetingsSpringTest {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

引用自 Baeldung:

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

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


Gho*_*ica 7

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

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

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