Class: GitlabQuality::TestTooling::TestMetricsExporter::Config

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb

Defined Under Namespace

Classes: ClickHouse, GCS

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#clickhouse_configObject

Returns the value of attribute clickhouse_config.



49
50
51
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 49

def clickhouse_config
  @clickhouse_config
end

#custom_metrics_procProc

A lambda that return hash with additional custom metrics

Returns:

  • (Proc)


139
140
141
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 139

def custom_metrics_proc
  @custom_metrics_proc ||= ->(_example) { {} }
end

#extra_rspec_metadata_keysArray<Symbol>

Extra rspec metadata keys to include in exported metrics

Returns:

  • (Array<Symbol>)


108
109
110
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 108

def 
  @extra_rspec_metadata_keys ||= []
end

#gcs_configObject

Returns the value of attribute gcs_config.



49
50
51
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 49

def gcs_config
  @gcs_config
end

#initial_runObject (readonly)

Returns the value of attribute initial_run.



49
50
51
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 49

def initial_run
  @initial_run
end

#loggerLogger

Logger instance

Returns:

  • (Logger)


146
147
148
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 146

def logger
  @logger ||= Logger.new($stdout, level: Logger::INFO)
end

#run_typeObject

Returns the value of attribute run_type.



50
51
52
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 50

def run_type
  @run_type
end

#skip_record_procProc

A lambda that determines whether to skip recording a test result

This is useful when you would want to skip initial failure when retrying specs is set up in a separate process and you want to avoid duplicate records

Returns:

  • (Proc)


125
126
127
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 125

def skip_record_proc
  @skip_record_proc ||= ->(_example) { false }
end

#spec_file_path_prefixString

Extra path prefix for constructing full file path within mono-repository setups

Returns:

  • (String)


115
116
117
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 115

def spec_file_path_prefix
  @spec_file_path_prefix ||= ""
end

#test_retried_procProc

A lambda that determines whether a test was retried or not

Returns:

  • (Proc)


132
133
134
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 132

def test_retried_proc
  @test_retried_proc ||= ->(_example) { false }
end

Class Method Details

.configurationObject



40
41
42
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 40

def configuration
  Config.instance
end

.configure {|configuration| ... } ⇒ Object

Yields:



44
45
46
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 44

def configure
  yield(configuration)
end

Instance Method Details

#extra_metadata_columnsArray

Additional metadata columns used during initial table creation

Returns:

  • (Array)


101
102
103
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 101

def 
  @extra_metadata_columns ||= []
end

#extra_metadata_columns=(columns) ⇒ Array

Additional columns to be created in the table if initial_run setup is used Columns should be defined in the format used for ALTER TABLE query, example;

[
  "feature_category LowCardinality(String) DEFAULT ''",
  "level LowCardinality(String) DEFAULT ''"
]

Parameters:

  • columns (Array)

Returns:

  • (Array)


85
86
87
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 85

def (columns)
  @extra_metadata_columns = columns
end

#initial_run!Boolean

Marks execution as initial run and performs setup tasks before running tests, like creating database in ClickHouse

Returns:

  • (Boolean)


94
95
96
# File 'lib/gitlab_quality/test_tooling/test_metrics_exporter/config.rb', line 94

def initial_run!
  @initial_run = true
end