Sha256: a4b7688957beb68826f55972a035c3ffd2dc7ab4e4463e956622d8456d205f50
Contents?: true
Size: 1.89 KB
Versions: 2
Compression:
Stored size: 1.89 KB
Contents
# frozen_string_literal: true # test_coverage reporter for Solargraph module SolargraphTestCoverage class TestCoverageReporter < Solargraph::Diagnostics::Base include ReporterHelpers def diagnose(source, _api_map) return [] if source.code.empty? || using_debugger?(source) || exclude_file?(source.location.filename) return [test_missing_error(source)] unless File.file?(test_file(source)) results = run_test(source) messages(source, results) rescue ChildFailedError [] end private def line_coverage_warning(source, line) return unless Config.line_coverage? { range: range(line, 0, line, source.code.lines[line].length), severity: Solargraph::Diagnostics::Severities::WARNING, source: 'TestCoverage', message: 'Line is missing test coverage' } end def branch_coverage_warning(source, report) return unless Config.branch_coverage? { range: range(report[:line] - 1, 0, report[:line] - 1, source.code.lines[report[:line] - 1].length), severity: Solargraph::Diagnostics::Severities::WARNING, source: 'TestCoverage', message: "'#{report[:type].upcase}' branch is missing test coverage" } end def test_failing_error(source) return unless Config.test_failing_coverage? { range: range(0, 0, 0, source.code.lines[0].length), severity: Solargraph::Diagnostics::Severities::ERROR, source: 'TestCoverage', message: 'Unit Test is currently failing.' } end def test_missing_error(source) return unless Config.test_missing_coverage? { range: range(0, 0, 0, source.code.lines[0].length), severity: Solargraph::Diagnostics::Severities::HINT, source: 'TestCoverage', message: "No test file found at '#{test_file(source).sub("#{Dir.pwd}/", '')}'" } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
solargraph_test_coverage-0.2.7 | lib/solargraph_test_coverage/test_coverage_reporter.rb |
solargraph_test_coverage-0.2.6 | lib/solargraph_test_coverage/test_coverage_reporter.rb |