尽管在各处都调用using my_module
,但是我在Julia中进行的文档测试要求具有模块名称的资格。如果我不具备这些功能,我会得到
ERROR: UndefVarError: add not defined
这是出现此错误的设置。 tree
的目录结构为:
.
|____docs
| |____make.jl
| |____src
| | |____index.md
|____src
| |____my_module.jl
文件docs/make.jl
是:
using Documenter, my_module
makedocs(
modules = [my_module],
format = :html,
sitename = "my_module.jl",
doctest = true
)
文件docs/src/index.md
是:
# Documentation
```@meta
CurrentModule = my_module
DocTestSetup = quote
using my_module
end
```
```@autodocs
Modules = [my_module]
```
文件src/my_module.jl
是:
module my_module
"""
add(x, y)
Dummy function
# Examples
```jldoctest
julia> add(1, 2)
3
```
"""
function add(x::Number, y::Number)
return x + y
end
end
如果我用src/my_module.jl
使my_module.add(1,2)
中的文档测试合格,那么它将正常工作。
如何避免在文档测试中限定函数名称?
答案 0 :(得分:0)
这未经测试,但是类似的东西应该可以工作:
module my_module
"""
add(x, y)
Dummy function
# Examples
```@setup abc
import my_module: add
```
```jldoctest abc
julia> add(1, 2)
3
```
"""
function add(x::Number, y::Number)
return x + y
end
end
答案 1 :(得分:0)
在this thread中的注释之后,问题在于add
函数没有导出,因此它没有与using
合并。您可以在模块声明之后在src/my_module.jl
顶部附近添加以下行:
export add
然后进行文档测试。