使用maven运行测试会显示类路径问题

Nim*_*sky 2 java junit spring maven

我正在尝试使用Maven在我的春季网络应用程序上运行一些单元测试.该应用程序安装并运行良好,无需测试.

我在我的万无一失的测试报告中收到此错误:

java.lang.NoClassDefFoundError: javax/servlet/ServletException
Run Code Online (Sandbox Code Playgroud)

测试本身看起来像这样:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:C:/myProjects/myWebapp/src/main/webapp/WEB-INF/applicationContext-test.xml"})
@Transactional
public class MyTest {
...
Run Code Online (Sandbox Code Playgroud)

以前我收到此错误,但是我从测试应用程序上下文中删除了对安全包的任何引用.得到了这个最新的错误.

这两个问题都是由于我的类路径设置不正确造成的?测试时似乎没有包含maven依赖项?我怎样才能改变这一点,或者我还缺少什么呢?

Jam*_* DW 10

试试这个.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

您的servlet容器将具有此功能,但您的某些测试必须具备此功能.您可能需要调整版本.

范围很重要.您不希望将此jar包装到您的战争中,但您希望它可用于您的测试.