相关疑难解决方法(0)

Spring @ContextConfiguration如何为xml放置正确的位置

在我们的项目中,我们正在编写测试以检查控制器是否返回正确的模型视图

@Test
    public void controllerReturnsModelToOverzichtpage()
    {
        ModelAndView modelView = new ModelAndView();
        KlasoverzichtController controller = new KlasoverzichtController();
        modelView = controller.showOverzicht();

        assertEquals("Klasoverzichtcontroller returns the wrong view ", modelView.getViewName(), "overzicht");
    }
Run Code Online (Sandbox Code Playgroud)

这将返回异常null.

我们现在正在配置@contextconfiguration但是我们不知道如何加载位于src\main\webapp\root\WEB-INF\root-context.xml的正确的xml

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class TestOverzichtSenario{
....
Run Code Online (Sandbox Code Playgroud)

此文档不够清晰,无法理解

关于如何确保contextannotation加载正确的xml的任何建议?

编辑v2

我将配置.xml文件从webINF文件夹复制到

src\main\resources\be\..a bunch of folders..\configuration\*.xml 
Run Code Online (Sandbox Code Playgroud)

并将webinf中的web.xml更改为

<param-name>contextConfigLocation</param-name>
<param-value>
            classpath*:configuration/root-context.xml
            classpath*:configuration/applicationContext-security.xml
        </param-value>
Run Code Online (Sandbox Code Playgroud)

现在得到错误

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
    org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
    org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93)
    org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
    org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397) …
Run Code Online (Sandbox Code Playgroud)

java spring unit-testing annotations maven

50
推荐指数
5
解决办法
18万
查看次数

spring junit为测试加载应用程序上下文

我的WEB-INF目录下有一些XML文件:

  • lyricsBaseApp-servlet.xml中
  • hibernate.xml
  • dataSource.xml
  • beans.xml中

servlet xml导入其他xml文件:

<import resource="dataSource.xml"/>
<import resource="hibernate.xml"/>
<import resource="beans.xml"/>
Run Code Online (Sandbox Code Playgroud)

我希望我的junit4 JukeboxTest类包含整个弹簧配置.使用默认文件名我创建了一个JukeboxTest-content.xml文件.最后,我不知道该放什么......

我试过了:

<import resource="/WEB-INF/dataSource.xml"/>
<import resource="/WEB-INF/hibernate.xml"/>
<import resource="/WEB-INF/beans.xml"/>
Run Code Online (Sandbox Code Playgroud)

要么

<import resource="classpath:./WEB-INF/dataSource.xml"/>
<import resource="classpath:./WEB-INF/hibernate.xml"/>
<import resource="classpath:./WEB-INF/beans.xml"/>
Run Code Online (Sandbox Code Playgroud)

和其他一些想法,但都失败了.有人能指出我如何访问这些文件以及spring解释这些文件路径的方式是什么?

junit spring applicationcontext

27
推荐指数
2
解决办法
8万
查看次数

Maven中的单元测试需要访问src/main/webapp目录

我正在尝试对我在Maven/Eclipse中开发的webapp进行单元测试.它是一个Spring MVC webapp,我需要一些单元测试来测试我的模型控制器.

为此,我需要使用我的webapp配置.xml文件来注入控制器,但是,我的所有配置(以及配置引用的其他相关文件)都在src/main/webapp目录中(根据Maven惯例) - 这里有很多文件我需要在我的测试中引用,但是在运行测试时它们不可用,因为它们不在类路径上(Maven似乎只是添加了src/main/java,src/test/java,src/main/resources,src/test /资源到类路径但不是src/main/webapps)

我不想将我的整个webapp复制到我的src/test/resources文件夹中只是为了测试 - 有没有其他方法可以访问它们?

我可以通过更改Eclipse"运行配置"以在类路径中包含此文件夹来解决这个问题,但是从命令行运行测试时这不起作用?

有人遇到过这种情况么?有没有明智的解决方案?

谢谢!

java maven-2 unit-testing spring-mvc

12
推荐指数
2
解决办法
9353
查看次数

Java/Eclipse:如何为JUnit测试配置Run Configuration的Classpath?

我有一个具有以下目录结构的Eclipse项目:

MyProj/
    src/main/java/
        com.me.myproject.widgets
            Widget.java
    src/main/config
        widget-config.xml
    src/test/java
        com.me.myproject.widgets
            WidgetTest.java
    src/test/config
        widget-test-config.xml
Run Code Online (Sandbox Code Playgroud)

Widget类读取它的配置(XML)从classpath中的任何地方文件中,并用它来配置它的属性.

WidgetTest当我右键单击该文件并转到时,我正试图在Eclipse中运行测试用例(所有用JUnit编写)Run As >> JUnit Test.我假设我必须实际运行它作为具有自己配置的类路径的自定义运行配置,但我不确定,因为我以前从未这样做过.

有没有人知道如何让自定义运行配置WidgetTest.java作为JUnit测试运行,并成功放在src/test/config/widget-test-config.xml类路径上?提前致谢!

请注意,这个问题不是关于如何从运行时类路径中读取资源,而是关于如何在Eclipse的JUnit Run Config类路径中获取它!

java eclipse junit classpath

1
推荐指数
1
解决办法
5万
查看次数