我正在尝试使用Maven在我的春季网络应用程序上运行一些单元测试。该应用程序安装并运行良好,无需测试。
我在我的万无一失的测试报告中收到此错误:
java.lang.NoClassDefFoundError: javax/servlet/ServletException
测试本身如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:C:/myProjects/myWebapp/src/main/webapp/WEB-INF/applicationContext-test.xml"})
@Transactional
public class MyTest {
...
之前我收到了这个error,但是我从测试应用上下文中删除了对安全包的任何引用。并得到了这个最新的错误。
这两个问题都是由于我的类路径设置不正确造成的?测试时似乎没有包含maven依赖项?我怎样才能改变这一点,或者我还缺少什么?
答案 0 :(得分:10)
试试这个。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>test</scope>
</dependency>
您的servlet容器将具有此功能,但您的一些测试必须具备此功能。您可能需要调整版本。
范围很重要。您不希望将此jar包装到您的战争中,但您希望它可用于您的测试。