現在、バケットとメトリックの集計のユニットテストカバレッジはほとんどありません。 このメタ問題の目的は、それを大幅に改善することです。 アグリゲーションごとに、アグリゲーターの単体テスト(各アグリゲーションが実装するorg.apache.lucene.search.Collector
を介してLuceneインデックスと相互作用する方法)、reduceロジック、およびアグリゲーション結果のシリアル化を追加する必要があります。
次のAggregator
実装の単体テストを追加する必要があります。
ParentToChildrenAggregator
@ cbuescher #23305FilterAggregator
@ colings86 #23826FiltersAggregator
@ jimczi #22678GeoHashGridAggregator
@ martijnvg #23417GlobalAggregator
@ nik9000 #22668DateHistogramAggregator
@ tlrx #22714HistogramAggregator
@ jpountz #22961MissingAggregator
@ jimczi #23895NestedAggregator
@polyfractalReverseNestedAggregator
@cbuescherRangeAggregator
( DateRangeAggregationBuilder
とGeoDistanceAggregationBuilder
でもテスト) @ tlrx #24569BinaryRangeAggregator
( IpRangeAggregationBuilder
でもテスト) @ jimczi #23255DiversifiedBytesHashSamplerAggregator
、 DiversifiedMapSamplerAggregator
、 DiversifiedNumericSamplerAggregator
、およびDiversifiedOrdinalsSamplerAggregator
。 @ martijnvg # SamplerAggregator
@ nik9000 #23243GlobalOrdinalsSignificantTermsAggregator
、 GlobalOrdinalsSignificantTermsAggregator.WithHash
、 SignificantLongTermsAggregator
、およびSignificantStringTermsAggregator
。 @ markharwood #24904DoubleTermsAggregator
、 GlobalOrdinalsStringTermsAggregator. LowCardinality
、 GlobalOrdinalsStringTermsAggregator. WithHash
、 LongTermsAggregator
、およびStringTermsAggregator
。 @ martijnvg #24949BestBucketsDeferringCollector
@ MaineC # BestDocsDeferringCollector
@ polyfractal # AvgAggregator
@ cbuescher #23000CardinalityAggregator
@ colings86 #23826GeoBoundsAggregator
@ jimczi #23259GeoCentroidAggregator
@ martijnvg #24111MaxAggregator
@ nik9000 #22668MinAggregator
[ MvG ]#22279TDigestPercentilesAggregator
およびHDRPercentilesAggregator
@ tlrx #24245TDigestPercentileRanksAggregator
およびHDRPercentileRanksAggregator
。 @ jpountz #23240ScriptedMetricAggregator
@ cbuescher #23404StatsAggregator
@jimcziExtendedStatsAggregator
@jimcziSumAggregator
@ martijnvg # TopHitsAggregator
@ nik9000 #22754ValueCountAggregator
@ tlrx #22741MatrixStatsAggregator
@ martijnvg #24837また、次のInternalAggregation
実装のテストを追加する必要があります。
(reduceおよびresultシリアル化ロジックをテストするため)
InternalChildren
@ cbuescher #23261InternalFilter
@ colings86 #23388InternalFilters
@ jimczi #22678InternalGeoHashGrid
@ martijnvg #23417InternalGlobal
@ nik9000 #23388InternalHistogram
@ jpountz #22961InternalDateHistogram
@ tlrx #23402InternalMissing
@ MaineC #23388InternalNested
@ polyfractal #23388InternalReverseNested
@ cbuescher #23388InternalRange
、 InternalDateRange
、 InternalGeoDistance
。 @ tlrx #24569InternalBinaryRange
@ jimczi #23259InternalSampler
@martijnvg edada2581e75400da9fac82bdfbc7ec1f02ef0d8SignificantLongTerms
およびSignificantStringTerms
。 @ tlrx #23428DoubleTerms
、 LongTerms
、 StringTerms
、およびUnmappedTerms
。 @ jpountz #23149InternalAvg
@ cbuescher #23000InternalCardinality
@ colings86 #23826InternalGeoBounds
@ jimczi #23259InternalGeoCentroid
@ martijnvg #24176InternalMax
@ nik9000 #22668InternalMin
@ colings86 + @ nik9000 #22668InternalTDigestPercentiles
(#24090)およびInternalHDRPercentiles
(#24157)@tlrxInternalTDigestPercentileRanks
およびInternalHDRPercentileRanks
。 @ jpountz #23240InternalScriptedMetric
@ cbuescher #23330InternalStats
@jimcziInternalExtendedStats
@jimcziInternalSum
@ martijnvg # InternalTopHits
@ nik9000InternalValueCount
@ tlrx #22741InternalMatrixStats
@ martijnvg #24559一部のクラスを忘れた可能性があるので、その場合はこの問題を更新してください:)
InternalAggregation
実装は、 Aggregator
実装とは別にリストしました。それぞれの単体テストは、さまざまな開発者が並行して作成できるためです。 ただし、それほど複雑でない集計では、 InternalAggregation
実装とAggregator
実装の両方の単体テストを同じPRに追加できると思います。
少なくともユニットテストはマスターブランチに追加する必要があると思います。 5.xブランチへのバックポートはベストエフォートであり、ぶら下がっている果物である場合にのみ検討する必要があります。
誤って2回作業することを避けるために、次の方法で作業することをお勧めします。
集計がテストされることに注意してください。ただし、コードが構造化される前の方法のため、単体テストは非常に困難でした。
私がすべてのサブクラスまたはInternalSingleBucketAggregation
ために何かに取り組んだら、誰か気になりますか? たくさんのチェックボックスをクリックできると思います。
私がすべてのサブクラスまたはInternalSingleBucketAggregationのために何かに取り組んだら、誰か気になりますか? たくさんのチェックボックスをクリックできると思います。
#23388をマージしました。
このチケットのすべてのタスクが完了しました🎉
最も参考になるコメント
このチケットのすべてのタスクが完了しました🎉