我已經開始使用Karate,并發現它使用起來很順手。在我探索的程序中,我很想知道關于它的許多事情。
其中之一是:
因此,我理解(像Cucumber)有兩種運行方式:
1.
1.) 使用構建工具(比如Maven),它的surefire插件將尋找一個運行器檔案(具有規定的*Test.java命名規則),這個檔案將被注解為(Karate.class)。然后執行被轉移到Karate.
2.
2.) 創建運行配置的IDE(基本上是用所需的classpath發布java命令,并用與膠水、特征檔案/場景行、標簽等有關的所需引數呼叫cucumber.api.cli.Main。)
但在IntelliJ上進行簡單搜索后發現,classpath上有兩個名為cucumber.api.cli.Main的.class檔案。一個來自cucumber jar檔案,另一個來自Karate.
。我的問題是,java是如何發現它必須呼叫Karate的那個檔案,而不是cucumber的那個。
當我打開 "運行 "的時候,我發現我的電腦上有很多的圖片。
當我打開 "運行配置 "并打開選擇 "主類 "的選項時,當我搜索它時,它只顯示一個,好像它知道要忽略黃瓜的那個。所以,甚至 IntelliJ 也以某種方式知道這一點。

uj5u.com熱心網友回復:
是的,我對這個黑客負責,不確定細節,但它似乎是有效的。
我認為簡單的規則是,Java類加載器有一個序列/層次結構--直接在classpath上的類被賦予優先權,而JAR檔案中的任何類被賦予較低的優先權。僅此而已。
當兩者都來自一個JAR檔案時,(Maven)的依賴性順序很重要。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/331336.html
標籤:

