日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

spock框架_Spock VW:编写自定义的Spock框架扩展

發(fā)布時間:2023/12/3 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spock框架_Spock VW:编写自定义的Spock框架扩展 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

spock框架

Spock框架具有多個內(nèi)置擴展 ,這些擴展支持許多核心功能,例如@Ignore和@Timeout批注。 但更重要的是,鼓勵開發(fā)人員編寫自己的擴展。 例如, SpringExtension很好地將Spock與Spring框架集成在一起。 編寫自定義擴展沒有很好的文檔記錄。 在本文中,我們將編寫非常簡單的擴展。 它不是一個全面的指南,而只是一個有趣的展示。

介紹Spock大眾擴展

在某些工程部門[1],只有在進(jìn)行外部審核時,才必須通過嚴(yán)格的測試。 在編程中,這將是一個連續(xù)集成服務(wù)器。 Spock VW擴展可確保所有測試都在CI服務(wù)器上通過,即使它們在開發(fā)人員機器或生產(chǎn)環(huán)境中失敗也是如此。 這個想法受到phpunit-vw的極大啟發(fā)。 讓我們進(jìn)行一個不可能成功的簡單,完整的測試:

@Unroll class EmissionsSpec extends Specification {def 'nitrogen oxide emission (#emission) in #model must not exceed #allowed'() {expect:emission <= allowedwhere:model | emission || allowed'Jetty' | 1.5 || 0.022'Pascal' | 0.67 || 0.016}def 'carbon dioxide'() {expect:105 < 130} }

對于這兩個示例,第一次測試顯然都失敗了,但是我們可以透明地添加一個Spock擴展,以確保沒有CI服務(wù)器能夠解決此問題。 該擴展程序僅檢查所有系統(tǒng)屬性和環(huán)境變量,以嘗試發(fā)現(xiàn)主機環(huán)境是否實際上是CI服務(wù)器:

package com.nurkiewicz.vwimport org.spockframework.runtime.extension.IGlobalExtension import org.spockframework.runtime.model.SpecInfoclass VwExtension implements IGlobalExtension {private static final CONTROLLED_ENV = ['bamboo.buildKey','BUILD_ID', 'BUILD_NUMBER', 'BUILDKITE','CI', 'CIRCLECI','CONTINUOUS_INTEGRATION','GOCD_SERVER_HOST','HUDSON_URL', 'JENKINS_URL','TEAMCITY_VERSION','TRAVIS',]private static final boolean EVERYTHING_IS_FINE =CONTROLLED_ENV.any {prop ->System.getProperty(prop) || System.getenv(prop)}@Overridevoid visitSpec(SpecInfo spec) {if (EVERYTHING_IS_FINE) {spec.features*.skipped = true}} }

VwExtension就像代碼庫中每個Specification一個方面。 它檢查已知環(huán)境變量的列表,如果存在any()環(huán)境變量( EVERYTHING_IS_FINE常量),則將跳過此Spec中的所有features (測試)。 還有一件事。 不會自動發(fā)現(xiàn)擴展,您必須在CLASSPATH的META-INF/services目錄下創(chuàng)建一個特殊的org.spockframework.runtime.extension.IGlobalExtension文件(當(dāng)然它可以在其他JAR中)。 該文件的內(nèi)容只是擴展類的完全限定名稱,例如com.nurkiewicz.vw.VwExtension 。

就是這樣,測試愉快!

翻譯自: https://www.javacodegeeks.com/2015/10/spock-vw-writing-custom-spock-framework-extensions.html

spock框架

總結(jié)

以上是生活随笔為你收集整理的spock框架_Spock VW:编写自定义的Spock框架扩展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。