Aujourd'hui, il existe très peu de couverture de tests unitaires pour les agrégations de compartiments et de métriques. Ce méta-problème vise à améliorer considérablement cela. Pour chaque agrégation, nous devons ajouter plus de tests unitaires pour l'agrégateur (comment il interagit avec l'index Lucene via org.apache.lucene.search.Collector
que chaque agrégation implémente), la logique de réduction et la sérialisation des résultats d'agrégation.
Nous devrions ajouter des tests unitaires pour les implémentations Aggregator
:
ParentToChildrenAggregator
@cbuescher #23305FilterAggregator
@colings86 #23826FiltersAggregator
@jimczi #22678GeoHashGridAggregator
@martijnvg #23417GlobalAggregator
@nik9000 #22668DateHistogramAggregator
@tlrx #22714HistogramAggregator
@jpountz #22961MissingAggregator
@jimczi #23895NestedAggregator
@polyfractalReverseNestedAggregator
@cbuescherRangeAggregator
(tester aussi avec DateRangeAggregationBuilder
et GeoDistanceAggregationBuilder
) @tlrx #24569BinaryRangeAggregator
(tester aussi avec IpRangeAggregationBuilder
) @jimczi #23255DiversifiedBytesHashSamplerAggregator
, DiversifiedMapSamplerAggregator
, DiversifiedNumericSamplerAggregator
et DiversifiedOrdinalsSamplerAggregator
. @martijnvg #23511SamplerAggregator
@nik9000 #23243GlobalOrdinalsSignificantTermsAggregator
, GlobalOrdinalsSignificantTermsAggregator.WithHash
, SignificantLongTermsAggregator
et SignificantStringTermsAggregator
. @markharwood #24904DoubleTermsAggregator
, GlobalOrdinalsStringTermsAggregator. LowCardinality
, GlobalOrdinalsStringTermsAggregator. WithHash
, LongTermsAggregator
et StringTermsAggregator
. @martijnvg #24949BestBucketsDeferringCollector
@MaineC #23511BestDocsDeferringCollector
@polyfractale #23511AvgAggregator
@cbuescher #23000CardinalityAggregator
@colings86 #23826GeoBoundsAggregator
@jimczi #23259GeoCentroidAggregator
@martijnvg #24111MaxAggregator
@nik9000 #22668MinAggregator
[ MvG ] #22279TDigestPercentilesAggregator
et HDRPercentilesAggregator
@tlrx #24245TDigestPercentileRanksAggregator
et HDRPercentileRanksAggregator
. @jpountz #23240ScriptedMetricAggregator
@cbuescher #23404StatsAggregator
@jimcziExtendedStatsAggregator
@jimcziSumAggregator
@martijnvg #22954TopHitsAggregator
@nik9000 #22754ValueCountAggregator
@tlrx #22741MatrixStatsAggregator
@martijnvg #24837Nous devrions également ajouter des tests pour les implémentations InternalAggregation
:
(pour tester la logique de sérialisation de réduction et de résultat)
InternalChildren
@cbuescher #23261InternalFilter
@colings86 #23388InternalFilters
@jimczi #22678InternalGeoHashGrid
@martijnvg #23417InternalGlobal
@nik9000 #23388InternalHistogram
@jpountz #22961InternalDateHistogram
@tlrx #23402InternalMissing
@MaineC #23388InternalNested
@polyfractale #23388InternalReverseNested
@cbuescher #23388InternalRange
, InternalDateRange
, InternalGeoDistance
. @tlrx #24569InternalBinaryRange
@jimczi #23259InternalSampler
@martijnvg edada2581e75400da9fac82bdfbc7ec1f02ef0d8SignificantLongTerms
et SignificantStringTerms
. @tlrx #23428DoubleTerms
, LongTerms
, StringTerms
et UnmappedTerms
. @jpountz #23149InternalAvg
@cbuescher #23000InternalCardinality
@colings86 #23826InternalGeoBounds
@jimczi #23259InternalGeoCentroid
@martijnvg #24176InternalMax
@nik9000 #22668InternalMin
@colings86 + @nik9000 #22668InternalTDigestPercentiles
(#24090) et InternalHDRPercentiles
(#24157) @tlrxInternalTDigestPercentileRanks
et InternalHDRPercentileRanks
. @jpountz #23240InternalScriptedMetric
@cbuescher #23330InternalStats
@jimcziInternalExtendedStats
@jimcziInternalSum
@martijnvg #22954InternalTopHits
@nik9000InternalValueCount
@tlrx #22741InternalMatrixStats
@martijnvg #24559J'ai peut-être oublié certaines classes, alors veuillez mettre à jour ce problème si tel est le cas :)
J'ai répertorié les implémentations InternalAggregation
séparément des implémentations Aggregator
car les tests unitaires pour chacune peuvent être écrits en parallèle par différents développeurs. Cependant, je pense que pour les agrégations moins complexes, des tests unitaires pour l'implémentation InternalAggregation
et les implémentations Aggregator
peuvent être ajoutés dans le même PR.
Je pense qu'au moins les tests unitaires devraient être ajoutés à la branche master. Le rétroportage vers la branche 5.x est le meilleur effort et ne devrait être envisagé que s'il s'agit de fruits à portée de main.
Je suggère que nous travaillions de la manière suivante afin d'éviter de faire accidentellement le travail deux fois :
Notez que les agrégations sont testées, mais en raison de la façon dont le code était structuré avant, les tests unitaires étaient vraiment difficiles.
Est-ce que quelqu'un s'en soucierait si je travaillais sur quelque chose pour toutes les sous-classes ou InternalSingleBucketAggregation
? Je pourrais cliquer sur beaucoup de cases à cocher.....
Est-ce que quelqu'un s'en soucierait si je travaillais sur quelque chose pour toutes les sous-classes ou InternalSingleBucketAggregation ? Je pourrais cliquer sur beaucoup de cases à cocher.....
J'ai fusionné #23388.
Toutes les tâches pour ce ticket sont maintenant terminées 🎉
Commentaire le plus utile
Toutes les tâches pour ce ticket sont maintenant terminées 🎉