elixir新手,我尝试运行"bob" exercise from exercism并在输入" 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 I&#m; m使用(1.1.1),我需要生成一个光束文件。什么是梁文件,我该如何生成?这会解决让我运行锻炼灵药测试练习的问题吗?
答案 0 :(得分:7)
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扩展名,用于脚本)。