我想在测试套件的开头运行一个代码块(将数据插入数据库!),并在整个测试套件中保留。
这样的事情可能吗?
我尝试在setup_all
块中运行代码,但是:
A)我在尝试插入数据库时遇到了失败;
B)这只能在该测试模块之间共享,而我希望它能在所有测试中共享。
感谢您的帮助!
答案 0 :(得分:3)
只需将公共代码放在k=n
:
test/test_helper.exs
假设您已经完成清理数据库并在测试之间运行迁移,您可以在ExUnit.start()
# Common Code
ModuleOne.some_method
ModuleTwo.other_method(args) # etc
中添加类似的内容:
test/test_helper.exs
在所有测试中使用此defmodule TestProject.Helpers do
def setup do
# Common Code
end
end
块:
setup
如果您还需要为测试设置虚假的数据库,架构和迁移,您还需要定义它们,并将其放在setup do
TestProject.Helpers.setup
end
中(假设您使用的是驱动程序)是test_helper
):
Postgrex