簡體   English   中英

Kogito 調試 DMN 測試場景

[英]Kogito Debugging DMN Test Scenarios

使用 Kogito 我正在嘗試為返回數組的 DMN 文件創建測試場景。 為了測試,我創建了一個簡單的 DMN,無論輸入如何,它都會返回一個對象數組。

但是如果我向返回數組添加一個值,測試就會失敗,如果我有零個元素作為預期結果,它們就會通過,這是沒有意義的。 如果從測試中執行,看起來 DMN 不會返回任何值。

如果我在 api 上運行它,它總是按預期返回數組上的一個元素。

我一直在試圖弄清楚如何在 Visual Studio 上調試它,但沒有運氣

預期的結果是這樣寫在文件上的,但再次出現沒有結果回來

[{"name":"\"jose\"", "ages":"[12,13]"}]

簡單的.dmn

簡單測試.scesim

基本上,一些調試方法會很棒,或者任何可以為我指明正確方向的幫助。

提前致謝

何塞

這里有兩點需要解決,一是與您遇到的錯誤有關,二是要了解如何在運行階段調試scesim資產。

  • 您的案例失敗:不幸的是, scesim資產在類型中嵌套 Collection 的情況下有一個眾所周知的限制,這就是您的案例。 特別是,您在預期列中為您的Simple類型定義了以下列表:

在此處輸入圖像描述

這里的問題是ages字段,它是一個嵌套列表。 提供[12,13]作為該列表的參數,在形式上是正確的。 但是,由於我提到的限制,它目前不起作用。 您可以使用一種解決方法,即使用表達式定義列表,如以下屏幕截圖所示:

在此處輸入圖像描述

表達? = {"name":"jose","ages":[12, 13]} ? = {"name":"jose","ages":[12, 13]}表示檢查實際值 ( ? ) 與包含值為jose的字段name和帶[12, 13]的字段ages的對象是否相等[12, 13]作為值。 請注意,根據您定義的邏輯,您期望一個只有一項的Simple類型列表。 如果您的Simple類型返回包含多個項目的列表,則表達式應由 List 而不是單個對象組成(例如? = [{"name":"jose","ages":[12, 13]}, {"name":"john","ages":[1, 3]}, .. ]我們知道這並不理想,我們正在定義一種改進這種用例體驗的方法。請繼續關注 KIE 頻道以了解更多或給予提示以改善這一點!

  • 如何調試測試場景資產:在此示例中,我使用 IntelliJ 作為 IDE,但它也適用於 VSCode。 參考您的scesim文件,讓我們使用mvn clean install運行它。 正如您所報告的,它將失敗,但有一個例外。 讓我們嘗試在堆棧跟蹤中報告的行之一中放置一個斷點(例如,在org.drools.scenariosimulation.backend.runner.AbstractScenarioRunner.singleRunScenario(AbstractScenarioRunner.java:125 )

在此處輸入圖像描述

在該行上放置一個斷點。 現在,要在調試模式下啟動scesim引擎,請轉到您的scesim激活器類(通常命名為KogitoScenarioJunitActivatorTest )。 在這里,您可以像 Junit 測試類一樣運行/調試您的scesim資產。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM