Как уже упоминалось в комментариях @fredrikekre, мне не хватало @autodocs
и некоторых других деталей.Вот полная настройка для doc-тестирования в Julia
с Documenter.jl
.
Структура каталогов my_module
(из команды tree
, упорядочена для ясности):
.
|____src
| |____my_module.jl
| |____my_functions.jl
|____docs
| |____make.jl
| |____src
| | |____index.md
|____README.md
|____REQUIRE
Файл src/my_module.jl
:
module my_module
# export functions you want to call without qualifications
export add_exported
using DataFrames # or any other module
# Include functions
include("my_functions.jl")
end
Файл src/my_functions.jl
содержит экспортированные и неэкспортированные функции.Обратите внимание, что doc-тест экспортируемых функций не имеет квалификации, а doc-тест неэкспортированных функций имеет:
"""
add_exported(x, y)
Dummy function, exported
# Examples
```jldoctest
julia> add_exported(1, 2)
3
```
"""
function add_exported(x::Number, y::Number)
return x + y
end
"""
add_not_exported(x, y)
Dummy function, not exported
# Examples
```jldoctest
julia> my_module.add_not_exported(1, 2)
3
```
"""
function add_not_exported(x::Number, y::Number)
return x + y
end
Файл docs/make.jl
имеет вид:
using Documenter, my_module
makedocs(
modules = [my_module],
format = :html,
sitename = "my_module.jl",
doctest = true
)
Файл docs/src/index.md
содержит using my_module
, что позволяет экспортировать функции в область действия:
# Documentation
```@meta
CurrentModule = my_module
DocTestSetup = quote
using my_module
end
```
```@autodocs
Modules = [my_module]
```
Последние два файла являются необязательными.Файл REQUIRE
служит только для удаленной установки пакета.Он содержит:
julia 0.6.3
DataFrames 0.11.6
Файл README.md
содержит описание в Markdown:
# my_module and its description
Наконец, перейдите в корневой каталог пакета, запустите сеанс Julia и введите:
julia> include("src/my_module.jl");include("docs/make.jl");
Documenter: setting up build directory.
Documenter: expanding markdown templates.
Documenter: building cross-references.
Documenter: running document checks.
> checking for missing docstrings.
> running doctests.
> checking footnote links.
Documenter: populating indices.
Documenter: rendering document.
Если вы измените результат add
в doc-тесте с 3
на любое другое число, Documenter
отобразит ошибку и покажет, что она работает.