elixir的新手和我尝试在练习中运行"bob"练习,并在控制台上输入"elixir bob_test.exs"时收到以下错误:
**(ExUnit.DocTest.Error)无法检索模块Teenager的文档.该模块未使用文档编译或无法访问其beam文件(ex_unit)lib/ex_unit/doc_test.ex:378:ExUnit.DocTest.extract/1(ex_unit)lib/ex_unit/doc_test.ex:202:ExUnit.DocTest .doctests/2 bob_test.exs:6 :(模块)
根据一些初步的研究,我收集到我正在使用的最新Elixir(1.1.1),我需要生成一个光束文件.什么是梁文件,我该如何生成?这会解决让我运行锻炼灵药测试练习的问题吗?
Elixir在字节码中存储文档,并且在使用脚本文件时,字节码直接加载到内存中而无需写入磁盘,因此文档无法访问.
解决问题的最简单和最好的方法是使用mix:
$ mix new bob
它将创建一个项目.将您的源代码放在"lib/bob.ex"中,在"test/bob_test.exs"中运行测试并运行mix test
其余部分.
如果你真的不想使用mix,你可以elixirc bob.ex
用来编译文件并生成字节码(你会.beam
在当前目录中看到一个).然后elixir bob_test.exs
运行测试.注意一个是elixirc
(c表示编译器带有扩展名),另一个是常规elixir可执行文件(带有exs扩展名,用于脚本).