datadog-ci 1.0.0.beta2 → 1.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +106 -72
  3. data/ext/datadog_cov/datadog_cov.c +36 -10
  4. data/lib/datadog/ci/configuration/components.rb +21 -2
  5. data/lib/datadog/ci/configuration/settings.rb +9 -3
  6. data/lib/datadog/ci/contrib/cucumber/formatter.rb +4 -1
  7. data/lib/datadog/ci/contrib/minitest/patcher.rb +2 -2
  8. data/lib/datadog/ci/contrib/minitest/test.rb +105 -0
  9. data/lib/datadog/ci/contrib/rspec/example.rb +2 -0
  10. data/lib/datadog/ci/contrib/rspec/knapsack_pro/extension.rb +30 -0
  11. data/lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb +57 -0
  12. data/lib/datadog/ci/contrib/rspec/patcher.rb +17 -1
  13. data/lib/datadog/ci/ext/environment.rb +5 -0
  14. data/lib/datadog/ci/ext/settings.rb +1 -0
  15. data/lib/datadog/ci/ext/test.rb +3 -1
  16. data/lib/datadog/ci/itr/coverage/writer.rb +7 -1
  17. data/lib/datadog/ci/itr/runner.rb +30 -6
  18. data/lib/datadog/ci/itr/skippable.rb +4 -2
  19. data/lib/datadog/ci/span.rb +7 -0
  20. data/lib/datadog/ci/test.rb +18 -0
  21. data/lib/datadog/ci/test_visibility/serializers/base.rb +3 -2
  22. data/lib/datadog/ci/test_visibility/serializers/factories/test_level.rb +3 -3
  23. data/lib/datadog/ci/test_visibility/serializers/factories/test_suite_level.rb +6 -6
  24. data/lib/datadog/ci/test_visibility/serializers/test_v2.rb +14 -2
  25. data/lib/datadog/ci/test_visibility/transport.rb +5 -1
  26. data/lib/datadog/ci/transport/remote_settings_api.rb +4 -2
  27. data/lib/datadog/ci/utils/bundle.rb +26 -0
  28. data/lib/datadog/ci/utils/test_run.rb +12 -0
  29. data/lib/datadog/ci/version.rb +1 -1
  30. metadata +10 -7
  31. data/lib/datadog/ci/contrib/minitest/hooks.rb +0 -77
@@ -1,77 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../../ext/test"
4
- require_relative "../../git/local_repository"
5
- require_relative "ext"
6
- require_relative "helpers"
7
-
8
- module Datadog
9
- module CI
10
- module Contrib
11
- module Minitest
12
- # Lifecycle hooks to instrument Minitest::Test
13
- module Hooks
14
- def before_setup
15
- super
16
- return unless datadog_configuration[:enabled]
17
-
18
- test_suite_name = Helpers.test_suite_name(self.class, name)
19
- if Helpers.parallel?(self.class)
20
- test_suite_name = "#{test_suite_name} (#{name} concurrently)"
21
-
22
- # for parallel execution we need to start a new test suite for each test
23
- CI.start_test_suite(test_suite_name)
24
- end
25
-
26
- source_file, line_number = method(name).source_location
27
-
28
- test_span = CI.start_test(
29
- name,
30
- test_suite_name,
31
- tags: {
32
- CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK,
33
- CI::Ext::Test::TAG_FRAMEWORK_VERSION => CI::Contrib::Minitest::Integration.version.to_s,
34
- CI::Ext::Test::TAG_SOURCE_FILE => Git::LocalRepository.relative_to_root(source_file),
35
- CI::Ext::Test::TAG_SOURCE_START => line_number.to_s
36
- },
37
- service: datadog_configuration[:service_name]
38
- )
39
- skip(CI::Ext::Test::ITR_TEST_SKIP_REASON) if test_span&.skipped_by_itr?
40
- end
41
-
42
- def after_teardown
43
- test_span = CI.active_test
44
- return super unless test_span
45
-
46
- finish_with_result(test_span, result_code)
47
- if Helpers.parallel?(self.class)
48
- finish_with_result(test_span.test_suite, result_code)
49
- end
50
-
51
- super
52
- end
53
-
54
- private
55
-
56
- def finish_with_result(span, result_code)
57
- return unless span
58
-
59
- case result_code
60
- when "."
61
- span.passed!
62
- when "E", "F"
63
- span.failed!(exception: failure)
64
- when "S"
65
- span.skipped!(reason: failure.message)
66
- end
67
- span.finish
68
- end
69
-
70
- def datadog_configuration
71
- Datadog.configuration.ci[:minitest]
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end