我尝试在setup和teardown中切换一个测试用例的数据库连接。但不知何故,测试返回给我这样一条消息:
RuntimeError: executing in another thread
这就是测试用例代码:
def setup
Example.establish_connection(ActiveRecord::Base.configurations['oracle'])
end
def teardown
Example.establish_connection(Rails.env)
end
测试数据库是sqlite,而我尝试用于测试用例的数据库是oracle,
在我的Spring项目中,我使用JUnit4运行某些测试用例。我使用@Transactional删除在测试用例期间对数据库所做的任何更改,以便新的测试用例获得相同的初始数据库状态。问题是,在我的一个测试用例中,我在数据库中插入了一些值,然后在同一个测试中再次使用它们。看起来@Transactional甚至在测试用例完成之前就删除了这些条目,因此我的测试无法按预期运行。如何解决此问题?
大概是这样的
@Test()
@Transactional
// Add entries to db and do some asserts
// Use those entries to do
我正在为Django编写一个测试套件,它以树的方式运行测试。例如,测试用例A可能有2个结果,测试用例B可能有1个结果,测试用例C可能有3个结果。
X
/
A-B-C-X
\ \
B X
\ X
\ /
C-X
\
X
对于上述树中的每条路径,数据库内容可能不同。因此,在每个分支中,我都在考虑创建数据库当前状态的内存副本,然后将该参数提供给下一个测试。
有谁知道如何从本质上将内存中的数据库复制到另一个数据库,然后获得一个引用来传递该数据库?
谢谢!
在运行这些测试用例时,我已经为我的项目编写了一些测试用例,它每次都会为别名“default”创建测试数据库,在给出消息后销毁数据库。我只关注message,因此如何避免创建测试数据库,因为这需要大量时间。
username$ ./manage.py test
...............
Some message, I Want only this message
...............
Creating test database for alias 'default'...
--------------------------------------------