7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'app/jobs/devformance/file_runner_job.rb', line 7
def perform(run_id:, file_path:, file_key:, framework: nil)
ENV["DEVMETRICS_SKIP_DB_SETUP"] = "1"
@framework = build_framework(framework)
result = ::Devformance::FileResult.find_by!(run_id: run_id, file_key: file_key)
result.update!(status: :running)
log = ::Devformance::LogWriter.open(run_id, file_key)
stream = "devformance:file:#{file_key}:#{run_id}"
broadcast(stream, type: "file_started", file_key: file_key, framework: @framework.name)
::Devformance::SqlInstrumentor.around_run do
run_tests(file_path, stream, log, result)
end
flush_sql_results(stream, log, result)
write_coverage(stream, log, result, file_path)
finalize(stream, log, result, run_id)
rescue => e
broadcast(stream, type: "file_error", message: e.message)
result&.update!(status: :failed)
ensure
log&.close
end
|