运行此练习练习时,此elixir编译器错误意味着什么?

时间:2015-12-29 06:54:59

标签: elixir

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),我需要生成一个光束文件。什么是梁文件,我该如何生成?这会解决让我运行锻炼灵药测试练习的问题吗?

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扩展名,用于脚本)。