Elasticsearch: Tingkatkan cakupan pengujian untuk agregasi bucket dan metrik

Dibuat pada 20 Des 2016  ·  3Komentar  ·  Sumber: elastic/elasticsearch

Saat ini hanya ada sedikit cakupan pengujian unit untuk agregasi bucket dan metrik. Tujuan masalah meta ini adalah untuk meningkatkannya secara signifikan. Untuk setiap agregasi, kita harus menambahkan lebih banyak pengujian unit untuk aggregator (bagaimana ia berinteraksi dengan indeks Lucene melalui org.apache.lucene.search.Collector yang diimplementasikan oleh setiap agregasi), logika reduksi dan serialisasi hasil agregasi.

Kita harus menambahkan pengujian unit untuk implementasi Aggregator :

  • [x] ParentToChildrenAggregator @cbuescher #23305
  • [x] FilterAggregator @colings86 #23826
  • [x] FiltersAggregator @jimczi #22678
  • [x] GeoHashGridAggregator @martijnvg #23417
  • [x] GlobalAggregator @nik9000 #22668
  • [x] DateHistogramAggregator @tlrx #22714
  • [x] HistogramAggregator @jpountz #22961
  • [x] MissingAggregator @jimczi #23895
  • [x] NestedAggregator @polyfractal
  • [x] ReverseNestedAggregator @cbuescher
  • [x] RangeAggregator (juga uji dengan DateRangeAggregationBuilder dan GeoDistanceAggregationBuilder ) @tlrx #24569
  • [x] BinaryRangeAggregator (juga uji dengan IpRangeAggregationBuilder ) @jimczi #23255
  • [x] Diversified sampler aggregator, yang memiliki implementasi berikut yang perlu diuji: DiversifiedBytesHashSamplerAggregator , DiversifiedMapSamplerAggregator , DiversifiedNumericSamplerAggregator dan DiversifiedOrdinalsSamplerAggregator . @martijnvg # 23511
  • [x] SamplerAggregator @nik9000 #23243
  • [x] Agregasi istilah signifikan: GlobalOrdinalsSignificantTermsAggregator , GlobalOrdinalsSignificantTermsAggregator.WithHash , SignificantLongTermsAggregator dan SignificantStringTermsAggregator . @markharwood #24904
  • [x] Agregasi istilah: DoubleTermsAggregator , GlobalOrdinalsStringTermsAggregator. LowCardinality , GlobalOrdinalsStringTermsAggregator. WithHash , LongTermsAggregator dan StringTermsAggregator . @martijnvg # 24.949
  • [x] BestBucketsDeferringCollector @MaineC #23511
  • [x] BestDocsDeferringCollector @polyfractal #23511
  • [x] AvgAggregator @cbuescher #23000
  • [x] CardinalityAggregator @colings86 #23826
  • [x] GeoBoundsAggregator @jimczi #23259
  • [x] GeoCentroidAggregator @martijnvg # 24.111
  • [x] MaxAggregator @nik9000 #22668
  • [x] MinAggregator [ MvG ] #22279
  • [x] Agregasi metrik persentil: TDigestPercentilesAggregator dan HDRPercentilesAggregator @tlrx #24245
  • [x] Agregasi metrik peringkat persentil: TDigestPercentileRanksAggregator dan HDRPercentileRanksAggregator . @jpountz #23240
  • [x] ScriptedMetricAggregator @cbuescher #23404
  • [x] StatsAggregator @jimczi
  • [x] ExtendedStatsAggregator @jimczi
  • [x] SumAggregator @martijnvg # 22.954
  • [x] TopHitsAggregator @nik9000 #22754
  • [x] ValueCountAggregator @tlrx #22741
  • [x] MatrixStatsAggregator @martijnvg # 24837

Kita juga harus menambahkan tes untuk implementasi InternalAggregation :
(untuk menguji logika serialisasi pengurangan dan hasil)

  • [x] InternalChildren @cbuescher #23261
  • [x] InternalFilter @colings86 #23388
  • [x] InternalFilters @jimczi #22678
  • [x] InternalGeoHashGrid @martijnvg #23417
  • [x] InternalGlobal @nik9000 #23388
  • [x] InternalHistogram @jpountz #22961
  • [x] InternalDateHistogram @tlrx #23402
  • [x] InternalMissing @MaineC #23388
  • [x] InternalNested @polyfractal #23388
  • [x] InternalReverseNested @cbuescher #23388
  • [x] InternalRange , InternalDateRange , InternalGeoDistance . @tlrx #24569
  • [x] InternalBinaryRange @jimczi #23259
  • [x] InternalSampler @martijnvg edada2581e75400da9fac82bdfbc7ec1f02ef0d8
  • [x] Agregasi istilah yang signifikan: SignificantLongTerms dan SignificantStringTerms . @tlrx #23428
  • [x] Agregasi istilah: DoubleTerms , LongTerms , StringTerms dan UnmappedTerms . @jpountz #23149
  • [x] InternalAvg @cbuescher #23000
  • [x] InternalCardinality @colings86 #23826
  • [x] InternalGeoBounds @jimczi #23259
  • [x] InternalGeoCentroid @martijnvg # 24.176
  • [x] InternalMax @nik9000 #22668
  • [x] InternalMin @colings86 + @nik9000 #22668
  • [x] Agregasi metrik persentil: InternalTDigestPercentiles (#24090) dan InternalHDRPercentiles (#24157) @tlrx
  • [x] Agregasi metrik peringkat persentil: InternalTDigestPercentileRanks dan InternalHDRPercentileRanks . @jpountz #23240
  • [x] InternalScriptedMetric @cbuescher #23330
  • [x] InternalStats @jimczi
  • [x] InternalExtendedStats @jimczi
  • [x] InternalSum @martijnvg # 22.954
  • [x] InternalTopHits @nik9000
  • [x] InternalValueCount @tlrx #22741
  • [x] InternalMatrixStats @martijnvg #24559

Saya mungkin lupa beberapa kelas, jadi perbarui masalah ini jika itu masalahnya :)

Saya mendaftarkan implementasi InternalAggregation secara terpisah dari implementasi Aggregator karena pengujian unit untuk masing-masing dapat ditulis secara paralel oleh pengembang yang berbeda. Namun saya pikir untuk pengujian unit agregasi yang kurang kompleks untuk implementasi InternalAggregation dan implementasi Aggregator dapat ditambahkan dalam PR yang sama.

Saya pikir setidaknya tes unit harus ditambahkan ke cabang master. Backporting ke cabang 5.x adalah upaya terbaik dan hanya boleh dipertimbangkan jika itu adalah buah yang menggantung rendah.

Saya menyarankan agar kita bekerja dengan cara berikut agar tidak sengaja melakukan pekerjaan dua kali:

  • Tambahkan nama Anda pada tugas yang ingin Anda kerjakan sebelum mulai menulis unit test.
  • Saat Anda membuka pr, tambahkan nomor PR ke tugas.
  • Setelah pr digabungkan, lalu centang tugas.

Perhatikan bahwa agregasi diuji, namun karena bagaimana sebelum kode disusun, pengujian unit sangat sulit.

:AnalyticAggregations >test Meta

Komentar yang paling membantu

Semua tugas untuk tiket ini sekarang telah selesai

Semua 3 komentar

Adakah yang keberatan jika saya mengerjakan sesuatu untuk semua subclass atau InternalSingleBucketAggregation ? Saya akan dapat mengklik banyak kotak centang .....

Adakah yang keberatan jika saya mengerjakan sesuatu untuk semua subclass atau InternalSingleBucketAggregation? Saya akan dapat mengklik banyak kotak centang .....

Saya menggabungkan #23388.

Semua tugas untuk tiket ini sekarang telah selesai

Apakah halaman ini membantu?
0 / 5 - 0 peringkat