配置: 使用RSpec,Capybara,Selemium驱动程序,SQLite数据库对Rails项目进行集成测试。
情况: 我没有对Capybara和默认的rack_test驱动程序进行集成测试。他们直接在数据库中创建用户注册(用于Devise
gem)。然后他们像用户一样使用Capybara DSL登录并测试场景。
问题: 我也尝试将驱动程序更改为Selenium来测试JavaScript代码。现在测试失败,因为应用程序看不到测试创建的用户注册。
研究: Selenium驱动程序在转换中的工作方式似乎有所不同,因此测试中所做的更改在Web应用程序中是不可见的。可能的解决方案包括:
config.use_transactional_fixtures = false
DatabaseCleaner.strategy = :truncation
对我来说,从这里到这里工作解决方案:
gem database_cleaner
spec/support/javascript.rb
包含内容的文件`
RSpec.configure do |config|
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with :truncation
end
config.before(:each) do
if example.metadata[:js]
Capybara.current_driver = :selenium
DatabaseCleaner.strategy = :truncation
else
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.start
end
end
config.after(:each) do
Capybara.use_default_driver if example.metadata[:js]
DatabaseCleaner.clean
end
end
`
尽管这对我的控制器和模型规格执行时间造成了小损失(从40到43秒)。
我可以使用Spring以编程方式创建和初始化嵌入式数据库: 或通过Spring配置: 这里,我的脚本和存储在目录中。因此,如果使用嵌入式数据库运行测试时: 然后,中的文件就可用了,一切都很好。 由:java.io.FileNotFoundException引起:无法打开类路径资源[schema.sql],因为它不存在 现在,如果我将脚本放入中,一切都可以工作了,但是这些脚本只是用来填充嵌入式数据库
场景:我在Spring中开发了一个使用mysql 8数据库的微服务。这个数据库必须被初始化(创建一个数据库、一些表和数据)。在我的主机上,我用data.sql和schema.sql脚本初始化了数据库。问题是,我必须设置: 第一次执行。这将以我想要的方式初始化我的数据库。对于以后的运行,我必须对该命令进行注释。非常难看的解决方案,但我找不到更好的解决方案,我现在没有得到这个问题的答案。我认为测试它是
我目前正在android studio中开发一个应用程序,因为我正试图在业余时间学习如何使用它,我的知识非常有限,所以我希望我能解释我的应用程序的概念,并向人们提供一些我可以使用的不同技术的建议。我的应用程序的基本思想是,它允许人们搜索名人,并显示他们的一些事实,他们的出生日期等。我知道它没有什么特别的,但它实际上是一个概念,可以帮助我提高我的android studio知识。 我的主要问题是以一
Junit4中是否有方法将一些预初始化的数据(如http连接)传递给所有子(即套件)测试类,这些数据是使用带有“@RunWith(Suite.class)”注释的类中的“@ClassRule”初始化的?还有,如何确保套件中的类不能单独运行? 例如 谢谢, 帕迪
我想不出如何使爆米花工作,如下所示:https://getbootstrap.com/docs/4.0/components/popovers/. 文档中提到了popover支持是一个插件,并且需要工具提示插件,所以我修改了我的要添加这两个,现在看起来如下所示: 我还没有找到任何关于引导插件概念的文档,所以上面关于和的两行来自搜索,不确定它们是否正确。 留档声明: Popovers是基于性能原因选
我正在定义自己的Liquibase自动配置来管理多租户,这涉及一个原型bean: 原型bean在运行时通过