nitc :: ModelBuilder :: test_markdown
mmodule
Returns a JUnit-compatible <testsuite>
XML element that contains the results of the executions.
# Extracts and executes all the docunits in the `mmodule`
# Returns a JUnit-compatible `<testsuite>` XML element that contains the results of the executions.
fun test_markdown(mmodule: MModule): HTMLTag
do
var ts = new HTMLTag("testsuite")
toolcontext.info("nitunit: doc-unit {mmodule}", 2)
var nmodule = mmodule2node(mmodule)
if nmodule == null then return ts
# usualy, only the original module must be imported in the unit test.
var o = mmodule
var g = o.mgroup
if g != null and g.mpackage.name == "core" then
# except for a unit test in a module of `core`
# in this case, the whole `core` must be imported
o = get_mmodule_by_name(nmodule, g, g.mpackage.name).as(not null)
end
ts.attr("package", mmodule.full_name)
var prefix = toolcontext.test_dir
prefix = prefix.join_path(mmodule.to_s)
var d2m = new NitUnitExecutor(toolcontext, prefix, o, ts, "Docunits of module {mmodule.full_name}")
do
total_entities += 1
var nmoduledecl = nmodule.n_moduledecl
if nmoduledecl == null then break label x
var ndoc = nmoduledecl.n_doc
if ndoc == null then break label x
doc_entities += 1
# NOTE: jenkins expects a '.' in the classname attr
d2m.extract(ndoc.to_mdoc, "nitunit." + mmodule.full_name + ".<module>", "<module>")
end label x
for nclassdef in nmodule.n_classdefs do
var mclassdef = nclassdef.mclassdef
if mclassdef == null then continue
if nclassdef isa AStdClassdef then
total_entities += 1
var ndoc = nclassdef.n_doc
if ndoc != null then
doc_entities += 1
d2m.extract(ndoc.to_mdoc, "nitunit." + mclassdef.full_name.replace("$", "."), "<class>")
end
end
for npropdef in nclassdef.n_propdefs do
var mpropdef = npropdef.mpropdef
if mpropdef == null then continue
total_entities += 1
var ndoc = npropdef.n_doc
if ndoc != null then
doc_entities += 1
var a = mpropdef.full_name.split("$")
d2m.extract(ndoc.to_mdoc, "nitunit." + a[0] + "." + a[1], a[2])
end
end
end
d2m.run_tests
return ts
end
src/testing/testing_doc.nit:563,2--625,4