Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 诱惑:目标文件夹中的环境文件在maven clean上被删除。如何在每次构建时生成它?_Java_Maven_Testng_Allure - Fatal编程技术网

Java 诱惑:目标文件夹中的环境文件在maven clean上被删除。如何在每次构建时生成它?

Java 诱惑:目标文件夹中的环境文件在maven clean上被删除。如何在每次构建时生成它?,java,maven,testng,allure,Java,Maven,Testng,Allure,说明中说要将environment.xml添加到Allure results目录()中,但该文件夹在mvn clean上被删除,因此文件也随之被删除。有没有办法在每次构建时生成此文件 谢谢。只需输入您的src/main/resources/并通过mvn测试或mvn站点复制到您的结果目录即可: <plugin> <artifactId>maven-resources-plugin</artifactId> <executions>

说明中说要将environment.xml添加到Allure results目录()中,但该文件夹在mvn clean上被删除,因此文件也随之被删除。有没有办法在每次构建时生成此文件


谢谢。

只需输入您的
src/main/resources/
并通过
mvn测试或
mvn站点
复制到您的结果目录即可:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-allure-environment</id>
            <phase>pre-site</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/target/allure-results</outputDirectory>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <includes>
                            <include>environment.xml</include>
                        </includes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

maven资源插件
复制诱惑环境
现场前
复制资源
${basedir}/target/allure结果
src/main/resources
environment.xml
对我来说,“预站点”阶段不起作用 正确的阶段是验证 我的资源在src\test\java\resoruces上 下面是我的pom.xml文件中的一个有效答案

<plugin>
   <artifactId>maven-resources-plugin</artifactId>
   <version>3.1.0</version>
   <executions>
      <execution>
         <id>copy-resources</id>
         <phase>validate</phase>
         <goals>
            <goal>copy-resources</goal>
         </goals>
         <configuration>
            <outputDirectory>${basedir}/allure-results</outputDirectory>
            <resources>
               <resource>
                  <directory>src/test/resources</directory>
                  <includes>
                     <include>environment.xml</include>
                  </includes>
               </resource>
            </resources>
         </configuration>
      </execution>
   </executions>
</plugin> 

maven资源插件
3.1.0
复制资源
验证
复制资源
${basedir}/allure结果
src/测试/资源
environment.xml

披露:我创建了Java库来处理这个问题:

它使用TransformerFactory在测试的任何阶段将environment.xml写入诱惑结果路径。它还检查目录是否存在,以防从清理后的构建运行

用法示例:

import static com.github.automatedowl.tools.AllureEnvironmentWriter.allureEnvironmentWriter;

public class SomeTests {

    @BeforeSuite
    void setAllureEnvironment() {
        allureEnvironmentWriter(
                ImmutableMap.<String, String>builder()
                        .put("Browser", "Chrome")
                        .put("Browser.Version", "70.0.3538.77")
                        .put("URL", "http://testjs.site88.net")
                        .build(), System.getProperty("user.dir")
                        + "/allure-results/");
    }

    @Test
    void someTest() {
        Assert.assertTrue(true);
    }
}
导入静态com.github.automatedowl.tools.AllureEnvironmentWriter.AllureEnvironmentWriter;
公共类考试{
@套房前
void setAllureEnvironment(){
allureEnvironmentWriter(
ImmutableMap.builder()
.put(“浏览器”、“浏览器”)
.put(“Browser.Version”,“70.0.3538.77”)
.put(“URL”)http://testjs.site88.net")
.build(),System.getProperty(“user.dir”)
+“/allure results/”;
}
@试验
无效测试(){
Assert.assertTrue(true);
}
}

谢谢!这是解决方案,非常感谢。