Add Test as a test-only dependency (close #25)
This commit is contained in:
parent
9b6c320397
commit
68ccca2ad6
@ -37,9 +37,9 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
|
|||||||
|
|
||||||
[[Mustache]]
|
[[Mustache]]
|
||||||
deps = ["Pkg", "Tables", "Test"]
|
deps = ["Pkg", "Tables", "Test"]
|
||||||
git-tree-sha1 = "455807b7c098d8a31f26792f685d5be250e83292"
|
git-tree-sha1 = "1cee2f530502aa2357724e7b19af3239b2e7f6b7"
|
||||||
uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70"
|
uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70"
|
||||||
version = "0.5.4"
|
version = "0.5.5"
|
||||||
|
|
||||||
[[Pkg]]
|
[[Pkg]]
|
||||||
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
|
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
name = "PkgTemplates"
|
name = "PkgTemplates"
|
||||||
uuid = "19f0ff7e-bab4-11e8-074b-97459630f98a"
|
uuid = "19f0ff7e-bab4-11e8-074b-97459630f98a"
|
||||||
authors = ["Chris de Graaf <chrisadegraaf@gmail.com>"]
|
authors = ["Chris de Graaf <chrisadegraaf@gmail.com>"]
|
||||||
version = "0.1.0"
|
version = "0.3.1"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
AutoHashEquals = "15f4f7f2-30c1-5605-9d31-71845cf9641f"
|
AutoHashEquals = "15f4f7f2-30c1-5605-9d31-71845cf9641f"
|
||||||
@ -12,5 +12,10 @@ LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433"
|
|||||||
Mustache = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70"
|
Mustache = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70"
|
||||||
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
|
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
|
||||||
REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
|
REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
|
||||||
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
|
||||||
URIParser = "30578b45-9adc-5946-b283-645ec420af67"
|
URIParser = "30578b45-9adc-5946-b283-645ec420af67"
|
||||||
|
|
||||||
|
[extras]
|
||||||
|
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
||||||
|
|
||||||
|
[targets]
|
||||||
|
test = ["Test"]
|
||||||
|
@ -109,13 +109,28 @@ Create the test entrypoint in `pkg_dir`.
|
|||||||
Returns an array of generated file/directory names.
|
Returns an array of generated file/directory names.
|
||||||
"""
|
"""
|
||||||
function gen_tests(pkg_dir::AbstractString, t::Template)
|
function gen_tests(pkg_dir::AbstractString, t::Template)
|
||||||
|
# TODO: Silence Pkg for this section? Adding and removing Test creates a lot of noise.
|
||||||
proj = Base.current_project()
|
proj = Base.current_project()
|
||||||
try
|
try
|
||||||
Pkg.activate(pkg_dir)
|
Pkg.activate(pkg_dir)
|
||||||
Pkg.add("Test")
|
Pkg.add("Test")
|
||||||
|
|
||||||
|
# Move the Test dependency into the [extras] section.
|
||||||
|
toml = read(joinpath(pkg_dir, "Project.toml"), String)
|
||||||
|
lines = split(toml, "\n")
|
||||||
|
idx = findfirst(l -> startswith(l, "Test = "), lines)
|
||||||
|
testdep = lines[idx]
|
||||||
|
deleteat!(lines, idx)
|
||||||
|
toml = join(lines, "\n") * """
|
||||||
|
[extras]
|
||||||
|
$testdep
|
||||||
|
|
||||||
|
[targets]
|
||||||
|
test = ["Test"]
|
||||||
|
"""
|
||||||
|
gen_file(joinpath(pkg_dir, "Project.toml"), toml)
|
||||||
|
Pkg.update() # Regenerate Manifest.toml (this cleans up Project.toml too).
|
||||||
finally
|
finally
|
||||||
# TODO: What should we do if there is no current project?
|
|
||||||
# Activating the generated project is now a side effect.
|
|
||||||
proj !== nothing && Pkg.activate(dirname(proj))
|
proj !== nothing && Pkg.activate(dirname(proj))
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -126,12 +141,10 @@ function gen_tests(pkg_dir::AbstractString, t::Template)
|
|||||||
|
|
||||||
@testset "$pkg.jl" begin
|
@testset "$pkg.jl" begin
|
||||||
# Write your own tests here.
|
# Write your own tests here.
|
||||||
@test 1 == 2
|
|
||||||
end
|
end
|
||||||
"""
|
"""
|
||||||
|
|
||||||
gen_file(joinpath(pkg_dir, "test", "runtests.jl"), text)
|
gen_file(joinpath(pkg_dir, "test", "runtests.jl"), text)
|
||||||
# TODO: Should we be checking Manifest.toml into Git?
|
|
||||||
return ["Manifest.toml", "test/"]
|
return ["Manifest.toml", "test/"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -225,6 +225,9 @@ end
|
|||||||
|
|
||||||
# Test the test generation.
|
# Test the test generation.
|
||||||
@test gen_tests(pkg_dir, t) == ["Manifest.toml", "test/"]
|
@test gen_tests(pkg_dir, t) == ["Manifest.toml", "test/"]
|
||||||
|
@test isfile(joinpath(pkg_dir, "Project.toml"))
|
||||||
|
project = read(joinpath(pkg_dir, "Project.toml"), String)
|
||||||
|
@test occursin("[extras]\nTest = ", project)
|
||||||
@test isdir(joinpath(pkg_dir, "test"))
|
@test isdir(joinpath(pkg_dir, "test"))
|
||||||
@test isfile(joinpath(pkg_dir, "test", "runtests.jl"))
|
@test isfile(joinpath(pkg_dir, "test", "runtests.jl"))
|
||||||
@test isfile(joinpath(pkg_dir, "Manifest.toml"))
|
@test isfile(joinpath(pkg_dir, "Manifest.toml"))
|
||||||
@ -233,7 +236,7 @@ end
|
|||||||
@test occursin("using $test_pkg", runtests)
|
@test occursin("using $test_pkg", runtests)
|
||||||
@test occursin("using Test", runtests)
|
@test occursin("using Test", runtests)
|
||||||
manifest = read(joinpath(pkg_dir, "Manifest.toml"), String)
|
manifest = read(joinpath(pkg_dir, "Manifest.toml"), String)
|
||||||
@test occursin("[[Test]]", manifest)
|
@test !occursin("[[Test]]", manifest)
|
||||||
|
|
||||||
rm(temp_dir; recursive=true)
|
rm(temp_dir; recursive=true)
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user