【问题标题】:IntelliJ Idea 2017 : SpringBoot test case issue : Content is not allowed in prologIntelliJ Idea 2017:SpringBoot 测试用例问题:prolog 中不允许内容
【发布时间】:2017-09-18 14:13:25
【问题描述】:

我在 Windows 10 上运行 IntelliJ Idea 2017,我正在开发一个 springboot 项目,当我尝试运行简单的测试用例时出现以下错误。

Caused by: org.xml.sax.SAXParseException; systemId: file:..../src/test/java/com/hero/project/controller/MainControllerTest.java; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1436)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:999)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:281)
... 6 more

这是它抱怨的测试用例

package com.hero.project.controller;
import org.junit.Before;
import org.junit.Test;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;

public class MainControllerTest {
    private MockMvc mockMvc;
    private MainController homeController;
    @Before
    public void setUp() throws Exception {
        homeController = new MainController();
        mockMvc = MockMvcBuilders.standaloneSetup(homeController).build();
    }

    @Test
    public void index() throws Exception {
        mockMvc.perform(get("/"))
                .andExpect(status().isOk())
                .andExpect(view().name("index"));
    }

}

这是 MainController 类。

package com.hero.project.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Calendar;

@Controller
public class MainController {

    @RequestMapping("/")
    public String index(Model model){
        int year = Calendar.getInstance().get(Calendar.YEAR);
        model.addAttribute("year",year);
        return "index";
    }

}

注意:在 Mac 上使用相同版本的 Intellij Idea 2017 的相同代码可以正常工作。我很难调试这个问题。我将不胜感激。谢谢你

【问题讨论】:

  • 不,不是我尝试了相同的解决方案,但没有奏效,似乎是 Intellij 2017 的问题。我从头开始使用 Intellij Idea 创建了这个项目
  • 我正在使用 IntelliJ 2017 并且没有遇到此类问题。我认为这是你的代码。
  • 关于您的问题的两个 SO 问题。我建议你在这里搜索一下,看看还有谁遇到了你的问题。

标签: java spring spring-mvc intellij-idea


【解决方案1】:

最后,我想通了。正是这个插件“Ant Debugger”导致了这个问题。我禁用了它并运行了测试,然后它就可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-01
    • 2011-07-23
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 2011-04-09
    • 1970-01-01
    相关资源
    最近更新 更多