我应该如何在Spring Boot中运行前端集成测试?

时间:2019-03-21 15:58:12

标签: spring maven spring-boot integration-testing spring-boot-maven-plugin

我有一个简单的spring boot项目,其项目结构如下:

project
  - backend (spring boot)
  - frontend (angular)

我已经配置了项目,因此* IT.java类在maven的集成测试阶段运行,并且它们已经成功地使用H2数据库测试了Spring Boot REST API。

我正在尝试配置项目,以便与浏览器进行交互的黄瓜测试将在项目的集成测试阶段运行。黄瓜测试可以正常启动,但由于简单的原因而失败,因为Spring Boot应用程序启动时角度文件没有得到服务。

在后端/ src / main / resources / static中,我有一个简单的index.html文件。黄瓜测试运行时,他们打开浏览器,我看到了该文件的内容。

在后端模块(war)pom中,我从角度构建中复制dist内容...

    <build>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring.boot.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>build-info</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>some.package.Boot</mainClass>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>${maven.war.plugin.version}</version>
            <configuration>
                <warName>${root.context}</warName>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <resources>
          <resource>
           <directory>../frontend/<appname>/dist/frontend</directory>
            <!--<targetPath>src/main/resources/static</targetPath>-->
            <targetPath>static</targetPath>
           </resource>
         </resources>
   </build>

在生成的war文件中,角度文件打包到WEB-INF / classes / static /中。

您会从上面注意到,我还尝试过将角度代码复制到资源/静态文件中,但这会将文件放在target / classes / src / main / resources / static中,所以这不是正确的方法! / p>

然而,黄瓜测试在运行时仍然只能从src / main / resources / static中看到index.html文件的内容。

可能我们可以将有角度的应用程序移到与java / webapp代码相同的src树中,但这不是一个选择。

我该如何说服Spring Boot在目标中使用战争,而不是将要发生的事情并从源头提供内容?

版本: Java 11

Maven战争插件3.2.2

在父pom中定义为2.1.3RELEASE的Springboot版本

  • spring-boot-starter-web
  • spring-boot-starter-data-rest
  • spring-boot-starter-data-jpa
  • spring-boot-starter-data-jdbc
  • spring-boot-starter-tomcat(不确定我需要这个)

0 个答案:

没有答案