diff --git a/lua/neotest-java/command/junit_command_builder.lua b/lua/neotest-java/command/junit_command_builder.lua index cc1af06..5b550b6 100644 --- a/lua/neotest-java/command/junit_command_builder.lua +++ b/lua/neotest-java/command/junit_command_builder.lua @@ -101,9 +101,14 @@ local CommandBuilder = { end assert(#selectors ~= 0, "junit command has to have a selector") + --TODO: put this in config + local jacoco_jar = "/home/rcasia/Downloads/org.jacoco.agent-0.8.9-runtime.jar" + local jacoco_output = "/home/rcasia/jacoco.exe" + local junit_command = { command = java(), args = { + ("-javaagent:%s=output=file,destfile=%s,append=false"):format(jacoco_jar, jacoco_output), "-jar", self._junit_jar, "execute", diff --git a/lua/neotest-java/core/result_builder.lua b/lua/neotest-java/core/result_builder.lua index fd537ec..2eb5f93 100644 --- a/lua/neotest-java/core/result_builder.lua +++ b/lua/neotest-java/core/result_builder.lua @@ -6,6 +6,8 @@ local log = require("neotest-java.logger") local scan = require("plenary.scandir") local lib = require("neotest.lib") local JunitResult = require("neotest-java.types.junit_result") +local Path = require("plenary.path") +local nio = require("nio") local SKIPPED = JunitResult.SKIPPED local REPORT_FILE_NAMES_PATTERN = "TEST-.+%.xml$" @@ -73,6 +75,17 @@ function ResultBuilder.build_results(spec, result, tree) -- luacheck: ignore 212 spec.context.terminated_command_event.wait() end + local coverage_file = Path:new("/home/rcasia/jacoco.exe") + local jacoco_cli = "/home/rcasia/Downloads/org.jacoco.cli-0.8.9-nodeps.jar" + local coverage_output = "/home/rcasia/jacoco.xml" + local classfiles = "target/neotest-java/classes" + if coverage_file:exists() then + vim.system(({"java", "-jar", jacoco_cli, "report", coverage_file.filename, "--xml", coverage_output, "--classfiles", classfiles})):wait() + end + + require('coverage').load(true) + require('coverage').summary() + ---@type table local results = {}