gpt4 book ai didi

elixir - ExUnit-在所有测试之前运行一次数据库设置代码

转载 作者:行者123 更新时间:2023-12-02 04:37:44 26 4
gpt4 key购买 nike

早上好,

我的Elixir项目中有一些特别昂贵的数据库设置代码,可将所需数据插入数据库。

我目前正在测试,这样可以通过@tag :insert_my_data构造在需要此数据之前将其插入。我的测试助手中有执行以下操作的代码:

setup tags do
if tags[:insert_my_data] do
# Run code here
end
end

问题是我必须运行此代码数百次,而且速度很慢。

更好的方法是,在调用 mix test之前,代码自动运行一次,并且Ecto提供的事务回滚功能将重置为该已知状态(而不是空数据库)。

我该怎么做?

谢谢!

最佳答案

我知道这是一个古老的问题,但这是一个好问题,并且仍然会在网络搜索结果中弹出。

在执行任何测试之前运行回调的另一种方法是将其放入test/test_helper.exs文件。默认情况下,它仅包含

ExUnit.start()

并且它将在测试运行之前执行一次,无论是仅运行 mix test还是使用 mix test test/path/to/file_test.exs:42之类的目标定位测试的子集。

如果您仅针对测试运行,我觉得它比修改别名更干净。

关于elixir - ExUnit-在所有测试之前运行一次数据库设置代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40681911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com