summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2018-07-18 12:17:49 +0200
committerKamil Trzciński <ayufan@ayufan.eu>2018-07-18 12:18:01 +0200
commit1859a0f9e0c0f8f10ba640a8826b9ccade9fd15f (patch)
tree0ea0c894e5fa310b8b1f6b85aa617f0cec0d6ea6
parent47dfdc732e850fd1390d25d50b1ef7a99491770a (diff)
downloadgitlab-ce-1859a0f9e0c0f8f10ba640a8826b9ccade9fd15f.tar.gz
Add summary to test results json
-rw-r--r--app/serializers/test_results_comparer_entity.rb6
-rw-r--r--app/serializers/test_suite_comparer_entity.rb7
-rw-r--r--lib/gitlab/ci/reports/test_results_comparer.rb8
-rw-r--r--lib/gitlab/ci/reports/test_suite_comparer.rb18
4 files changed, 39 insertions, 0 deletions
diff --git a/app/serializers/test_results_comparer_entity.rb b/app/serializers/test_results_comparer_entity.rb
index 2e17ecb7ee2..395dc689dda 100644
--- a/app/serializers/test_results_comparer_entity.rb
+++ b/app/serializers/test_results_comparer_entity.rb
@@ -1,3 +1,9 @@
class TestResultsComparerEntity < Grape::Entity
+ expose :summary do
+ expose :total_count, as: :total
+ expose :resolved_count, as: :resolved
+ expose :failed_count, as: :failed
+ end
+
expose :suites, using: TestSuiteComparerEntity
end
diff --git a/app/serializers/test_suite_comparer_entity.rb b/app/serializers/test_suite_comparer_entity.rb
index af4ef90786d..ed6c2581ce0 100644
--- a/app/serializers/test_suite_comparer_entity.rb
+++ b/app/serializers/test_suite_comparer_entity.rb
@@ -1,5 +1,12 @@
class TestSuiteComparerEntity < Grape::Entity
expose :name
+
+ expose :summary do
+ expose :total_count, as: :total
+ expose :resolved_count, as: :resolved
+ expose :failed_count, as: :failed
+ end
+
expose :new_failures, using: TestCaseEntity
expose :resolved_failures, using: TestCaseEntity
expose :existing_failures, using: TestCaseEntity
diff --git a/lib/gitlab/ci/reports/test_results_comparer.rb b/lib/gitlab/ci/reports/test_results_comparer.rb
index a60917b30f7..752bb9f9914 100644
--- a/lib/gitlab/ci/reports/test_results_comparer.rb
+++ b/lib/gitlab/ci/reports/test_results_comparer.rb
@@ -18,6 +18,14 @@ module Gitlab
end
end
end
+
+ %w(total_count resolved_count failed_count).each do |method|
+ define_method(method) do
+ strong_memoize(method) do
+ suites.sum { |suite| suite.public_send(method) }
+ end
+ end
+ end
end
end
end
diff --git a/lib/gitlab/ci/reports/test_suite_comparer.rb b/lib/gitlab/ci/reports/test_suite_comparer.rb
index fc25b7a57f4..64d29d3a5fe 100644
--- a/lib/gitlab/ci/reports/test_suite_comparer.rb
+++ b/lib/gitlab/ci/reports/test_suite_comparer.rb
@@ -35,6 +35,24 @@ module Gitlab
end.values
end
end
+
+ def total_count
+ strong_memoize(:total_count) do
+ head_suite.total_count
+ end
+ end
+
+ def resolved_count
+ strong_memoize(:resolved_count) do
+ resolved_failures.count
+ end
+ end
+
+ def failed_count
+ strong_memoize(:failed) do
+ new_failures.count + existing_failures.count
+ end
+ end
end
end
end