Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir ExUnit:在完成测试套件之前运行函数?_Elixir_Ex Unit - Fatal编程技术网

Elixir ExUnit:在完成测试套件之前运行函数?

Elixir ExUnit:在完成测试套件之前运行函数?,elixir,ex-unit,Elixir,Ex Unit,在每个测试之前调用setup回调,在任何测试运行之前,每个模块只调用一次setup\u all回调 在这种情况下,我需要在整个测试套件运行之前准备一些东西。只有一次。我使用的是一个非标准的数据库,设置包含所有索引的模式需要一点时间。因此,我希望通过不经常这样做来加速测试 有办法处理这个问题吗?您可以将初始化代码放入test/test\u helper.exs中。该文件中的任何代码都将在测试运行之前执行,并且只执行一次。正如@mudasobwa指出的,不管代码是在ExUnit.start()之前还

在每个测试之前调用
setup
回调,在任何测试运行之前,每个模块只调用一次
setup\u all
回调

在这种情况下,我需要在整个测试套件运行之前准备一些东西。只有一次。我使用的是一个非标准的数据库,设置包含所有索引的模式需要一点时间。因此,我希望通过不经常这样做来加速测试


有办法处理这个问题吗?

您可以将初始化代码放入
test/test\u helper.exs
中。该文件中的任何代码都将在测试运行之前执行,并且只执行一次。正如@mudasobwa指出的,不管代码是在
ExUnit.start()之前还是之后,它都将在测试之前运行

# your code here 

ExUnit.start()

# or here

您可以将初始化代码放入
test/test\u helper.exs
。该文件中的任何代码都将在测试运行之前执行,并且只执行一次。正如@mudasobwa指出的,不管代码是在
ExUnit.start()之前还是之后,它都将在测试之前运行

# your code here 

ExUnit.start()

# or here

“before
ExUnit.start()
”在这里有意义吗
test/test\u helper.ex
只执行一次,不管
ExUnit
是否已经启动。@mudasobwa我认为只要
ExUnit
启动,它就会尝试运行所有测试,所以我认为这一点非常重要。@Hauleth mudasobwa是正确的。
ExUnit.start
的文档中说:“在VM终止之前启动ExUnit并自动运行测试。”我还通过在
ExUnit.start()之后添加代码来测试这一点,它在测试运行之前执行。我会修改我的答案。我的错。但这是个好主意,令人惊讶,但很好。现在我认为我错了。正在运行的测试与
test\u helper.exs
处理的其余部分之间可能存在竞态条件,因为它没有编译,但被编译(
exs
是一个脚本。)“before
ExUnit.start()
”在这里是否重要
test/test\u helper.ex
只执行一次,不管
ExUnit
是否已经启动。@mudasobwa我认为只要
ExUnit
启动,它就会尝试运行所有测试,所以我认为这一点非常重要。@Hauleth mudasobwa是正确的。
ExUnit.start
的文档中说:“在VM终止之前启动ExUnit并自动运行测试。”我还通过在
ExUnit.start()之后添加代码来测试这一点,它在测试运行之前执行。我会修改我的答案。我的错。但这是个好主意,令人惊讶,但很好。现在我认为我错了。正在运行的测试与
test\u helper.exs
处理的其余部分之间可能存在竞态条件,因为它不是编译的,而是被保护的(
exs
是一个脚本。)