maven - 如何在所有测试后调用自定义方法/cleanUp? (盖布和斯波克)

标签 maven testing automated-tests spock geb

为了在运行测试之前设置环境,我使用了 GebConfig.groovy 类,它在运行测试时作为第一个组件被触发。但我还需要在所有测试完成后将环境恢复到初始状态。

我试图覆盖扩展 GebReportingSpec 类的类中的 cleanUpSpec() 方法,但它在每次测试后都会被调用。

有没有办法在所有测试完成后调用方法,将环境清理到初始状态?

我在这个项目中使用了maven。

最佳答案

我不知道 Geb 或 Spock 中的任何机制。一般来说,我的经验是,如果每个测试都在开始之前设置好阶段,而不是依赖于可能尚未执行的某些清理机制,那么您会处于一个更好的位置。

但是,如果你真的需要这个,我建议使用类似 Maven Exec Plugin 的东西执行阶段后(集成)测试:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
        <execution>
            <id>cleanup</id>
            <phase>post-test</phase>
            <goals>
                <goal>exec</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <executable>cleanup.groovy</executable>
    </configuration>
</plugin>

您可以使用任何可执行文件代替 cleanup.groovy,但请记住它必须是可执行的 (chmod +x ...)。

关于maven - 如何在所有测试后调用自定义方法/cleanUp? (盖布和斯波克),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53283012/

相关文章:

java - 如何使用maven项目在JavaFX中生成可执行jar

spring - 使用 spring xml 作为后台进程/线程启动 jetty

python - 如何使用 Python 从 gdb 访问 C++ 程序的变量

java - Selenium RemoteWebDriver UnreachableBrowserException 与边缘

maven - 将 war 依赖项中的静态资源(js和css)复制到Grails应用程序的web-app目录。

maven - 将JMH代码集成到现有的maven项目中

具有许多 phantomjs 并发实例的 Selenium 网格节点

angular - 故事书 6 错误 : ngrx no provider for Store error - how to fix?

database - 使用数据库访问的 Magento 和 Selenium RC 测试

java - 在 mockito 的 thenReturn 中打印语句