假設您有分層數據並想要獲得單獨屬性的合併值,那麼最優雅的方法還是?最優雅的同時獲取兩個屬性的方法
以下示例包含有關失敗和跳過測試的信息。當然,它的確是有道理的,這些值是分開的 - 但對於檢索所有測試列表的用例來說,這些列表沒有成功運行,我遇到了兩種可能的解決方案,但他們都不滿足我。
def junitResultList = [
[
name: "Testsuite A",
children: [
failedTests: ["Test 1", "Test 2"],
skippedTests: []
]
],
[
name: "Testsuite B",
children: [
failedTests: ["CursorTest"],
skippedTests: ["ClickTest", "DragNDropTest"]
]
]
]
更具體地說,我想要的值是["Test 1", "Test 2", "CursorTest", "ClickTest", "DragNDropTest"]
。
第一種方法是簡單地執行加法蔓延測試列表:雖然這個工程
(junitResultList*.children*.failedTests +
junitResultList*.children*.skippedTests).flatten()
,它似乎我指定給這些屬性的路徑似乎兩次不是最常規的方法,所以我想出了這個可怕的,但不知何故吸引disasterpiece:
(junitResultList*.children*.findAll {
['skippedTests', 'failedTests'].contains(it.key)
})*.values().flatten()
這一行內容非常可讀,清楚地表明瞭它的意圖。 – Jazzschmidt