Class: SixthSense::Analyzers::QualityFlakiness

Inherits:
SixthSense::Analyzer show all
Defined in:
lib/sixth_sense/analyzers/quality_flakiness.rb

Instance Method Summary collapse

Methods inherited from SixthSense::Analyzer

analyzer_id, axis, inherited, level, reference, references

Instance Method Details

#analyze(test_file, _context) ⇒ Object

Paper basis: Luo et al. 2014 (doi:10.1145/2635868.2635920) categorizes flaky-test causes; this analyzer flags static triggers from those classes.



20
21
22
23
24
25
# File 'lib/sixth_sense/analyzers/quality_flakiness.rb', line 20

def analyze(test_file, _context)
  findings = test_file.test_cases.filter_map { |test_case| flaky_finding(test_case) }
  score = [100.0 - (20.0 * findings.length), 0.0].max

  result(score: score.round(2), findings: findings, confidence: :high)
end