-
Notifications
You must be signed in to change notification settings - Fork 177
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Adrien Moreau
committed
Mar 16, 2020
1 parent
22c9a3c
commit 20a3309
Showing
3 changed files
with
77 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
defmodule ExCoveralls.XmlTest do | ||
use ExUnit.Case | ||
import Mock | ||
import ExUnit.CaptureIO | ||
alias ExCoveralls.Xml | ||
|
||
@file_name "excoveralls.xml" | ||
@test_output_dir "cover_test/" | ||
|
||
@content "defmodule Test do\n def test do\n end\nend\n" | ||
@counts [0, 1, nil, nil] | ||
@source_info [%{name: "test/fixtures/test.ex", | ||
source: @content, | ||
coverage: @counts | ||
}] | ||
|
||
@stats_result "" <> | ||
"----------------\n" <> | ||
"COV FILE LINES RELEVANT MISSED\n" <> | ||
" 50.0% test/fixtures/test.ex 4 2 1\n" <> | ||
"[TOTAL] 50.0%\n" <> | ||
"----------------\n" | ||
|
||
setup do | ||
path = Path.expand(@file_name, @test_output_dir) | ||
|
||
# Assert does not exist prior to write | ||
assert(File.exists?(path) == false) | ||
on_exit fn -> | ||
if File.exists?(path) do | ||
# Ensure removed after test | ||
File.rm!(path) | ||
File.rmdir!(@test_output_dir) | ||
end | ||
end | ||
|
||
{:ok, report: path} | ||
end | ||
|
||
test_with_mock "generate xml file", %{report: report}, ExCoveralls.Settings, [], | ||
[ | ||
get_coverage_options: fn -> %{"output_dir" => @test_output_dir} end, | ||
get_file_col_width: fn -> 40 end, | ||
get_print_summary: fn -> true end, | ||
get_print_files: fn -> true end, | ||
get_xml_base_dir: fn -> "base_dir" end | ||
] do | ||
|
||
assert capture_io(fn -> | ||
Xml.execute(@source_info) | ||
end) =~ @stats_result | ||
|
||
assert File.read!(report) =~ ~s(<coverage version="1"><file path="base_dir/test/fixtures/test.ex"><lineToCover lineNumber="1" covered="false"/><lineToCover lineNumber="2" covered="true"/></file></coverage>) | ||
assert %{size: 173} = File.stat! report | ||
end | ||
|
||
test "generate json file with output_dir parameter", %{report: report} do | ||
assert capture_io(fn -> | ||
Xml.execute(@source_info, [output_dir: @test_output_dir]) | ||
end) =~ @stats_result | ||
|
||
assert File.read!(report) =~ ~s(<coverage version="1"><file path="/test/fixtures/test.ex"><lineToCover lineNumber="1" covered="false"/><lineToCover lineNumber="2" covered="true"/></file></coverage>) | ||
assert %{size: 165} = File.stat! report | ||
end | ||
end |