Arquillian变色龙。 简化您的Arquillian测试
Arquillian Chameleon的誕生是為了簡化Arquillian測試的配置。 我很自豪地宣布,使用1.0.0.CR2版本,我們不僅簡化了Arquillian測試的配置方式,而且簡化了編寫方式。
在此新版本中,添加了三個新的簡化:
- 您只需要使用1個(或最多2個依賴項,以防您想使用自動部署功能)
 - 不必添加任何依賴關系來定義要用于運行測試的應用程序服務器。 甚至不必使用arquillian.xml文件來定義它。
 - 不必使用ShrinkWrap來構建您的程序包。 您仍然可以使用它,但是可以將創建程序包的過程委托給自定義SPI。
 
因此,讓我們開始吧。
相依性
您只需要添加一個依賴關系,而不再需要添加Arquillian依賴關系+容器依賴關系。
<dependency><groupId>org.arquillian.container</groupId><artifactId>arquillian-chameleon-junit-container-starter</artifactId><version>${arquillian.chameleon.version}</version><scope>test</scope> </dependency>容器的定義
@RunWith(ArquillianChameleon.class) @ChameleonTarget("wildfly:11.0.0.Final:managed") public class GameResourceRestApiTest { }您只需要使用ArquillianChameleon運行器和特殊注釋@ChameleonTarget來定義要使用的容器。 在此示例中,配置了具有托管模式的Wildfly 11 。
運行此測試時,將使用Arquillian Wildfly依賴項配置classpath,下載應用程序服務器,然后像其他Arquillian測試一樣運行。
您可以在https://github.com/arquillian/arquillian-container-chameleon#arquillian-chameleon-runner中了解有關此功能的更多信息。
自動部署
Arquillan允許您定義Java SPI來描述應如何創建檔案。 這實際上意味著,如果您提供自動創建部署文件的實現,則不需要@Deployment方法。
Arquillian Chameleon目前提供兩種實現:
對于本示例,我將以多模塊項目為例,但是請注意,如果您創建一個無多模塊項目,則默認設置可以完美地工作。
<dependency><groupId>org.arquillian.container</groupId><artifactId>arquillian-chameleon-maven-build-deployment</artifactId><version>${arquillian.chameleon.version}</version><scope>test</scope> </dependency>@RunWith(ArquillianChameleon.class) @ChameleonTarget("wildfly:11.0.0.Final:managed") @MavenBuild(pom = "../../pom.xml", module = "gamepage/impl") @DeploymentParameters(testable = false) public class GameResourceRestApiTest {@ArquillianResourceURL url; }注意,根據您選擇的方法( File或Maven ),您需要在類路徑上添加實現。
在這種情況下,我選擇使用Maven方法,這意味著歸檔是通過構建所有項目來生成的。
由于該示例,此測試特定于兩件事,需要對其進行自定義(而不是默認設置)。
第一個是pom位置。 默認情況下, @ MavenBuild批注使用執行測試的pom.xml。 對于多模塊項目,您不想從定義測試的模塊運行構建,而要從項目的根目錄運行,因此您將獲得一個包含所有依賴項的完整檔案。 對于這種情況,您需要將其設置在何處。
第二個是生成用于部署的存檔的位置。 默認情況下,您無需指定任何內容,因為在沒有多模塊項目的情況下,您僅生成一個文件。 但是對于多模塊項目,您將生成多個歸檔,因此需要指定哪個模塊包含最終歸檔。
就是這樣,當您運行此測試時, Arquillian將下載Wildfly,啟動它,運行構建以獲取最終的部署文件(例如.war),對其進行部署并最終運行該測試。
請注意,還沒有強制使用@DeploymentParameters批注,但允許您像使用@Deployment批注那樣配置部署,例如設置部署名稱或將容器(默認容器)的模式更改為作為客戶。
您可以在以下位置看到完整的示例: https : //github.com/lordofthejars/games-monolith/blob/master/gamepage/impl/src/test/java/org/lordofthejars/games/game/GameResourceRestApiTest.java
您也可以在https://github.com/arquillian/arquillian-core/blob/master/docs/deployment-archives.adoc#deployment-archives-using-java-spi上了解有關自動部署功能的更多信息。
結論
您會看到一切都已簡化很多。 這個想法是為了提供您在運行Spring測試時獲得的類似體驗。
我們不斷學習,
亞歷克斯
翻譯自: https://www.javacodegeeks.com/2018/03/arquillian-chameleon-simplifying-your-arquillian-tests.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Arquillian变色龙。 简化您的Arquillian测试的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 负离子是什么东西(其实它是一种天然净化因
 - 下一篇: 苹果或2023年推出折叠iphone(2