我有以下测试代码:
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
的方法答案 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中。
答案 1 :(得分:4)
简单:您的IDE 不配置为进行单元测试。
换句话说:您缺少所有 JUnit相关类。您可以看到所有这些JUnit导入都带有下划线;因为IntelliJ根本不知道包含相应类的JAR。
请参阅here了解如何解决此问题。