当前位置: 首页 > 知识库问答 >
问题:

一个testcontainers用于多个测试

范哲
2023-03-14

我在scala上,我有多个针对不同类(testsuites)的测试文件,每一个都使用testcontainers(来自同一脚本的init)。

当我启动项目中的所有测试时,所有测试都失败了(由于testContainers导致与数据库的连接出现问题)。

当我分别启动测试时,所有的测试都成功了。

有没有办法为多个测试文件(testsuites)只启动一个容器?TestContainerForAll似乎只对同一文件中的测试起作用。

@Matthias Berndt回复后编辑:

下面是我正在使用的libs:

  • “org.scalatest”%%“scalatest”%“3.0.8”
  • “com.dimafeng”%%“TestContainers-Scala-Scalatest”%“0.38.1”
  • “com.dimafeng”%%“TestContainers-Scala-PostgreSQL”%“0.38.1”

这是我的代码


trait DAOTest extends ForAllTestContainer {
  this: Suite =>

  override val container: PostgreSQLContainer = PostgreSQLContainer()
  container.container.withInitScript("extractData.sql")

  container.start()
  ConfigFactory.invalidateCaches()
  System.setProperty("jdbc.url", container.jdbcUrl)
  ConfigFactory.invalidateCaches()

}

共有1个答案

周翰池
2023-03-14

其中一个选项是(用Java术语来说)创建一个抽象基类,将容器声明为静态变量,并在测试中扩展该类。在这种情况下,只在加载基类时创建一次容器。

 类似资料:
  • 我正在编写一个Java应用程序。我有多个按钮。每个按钮的代码完全相同,因此我只需要一个ActionListener。但是在这个ActionListener中,我需要为相应的按钮调用“setText()”。这可能吗?我将如何实现这一点? 我尝试了以下方法: 但这不起作用——它说“找不到符号”。 提前感谢;)

  • 我在WebDriver中的测试有问题。 在第一个包我有2类(页)主页,登录页。 在secound包中,我有test-goToLiginPageTest和LoginTest。 在Gotoligini页面,我检查,我在主页上,并进入登录页面。 在LoginTest中,我检查我是否在登录页面上,并登录。 但来自goToLiginPageTest的两个测试通过,但来自LoginTest的测试失败。 我不确

  • 问题内容: 我在python中有以下代码 我的问题是在test_home_page函数之后,firefox实例关闭并为下一个test_whatever函数再次打开。我该怎么做,以便所有测试用例都从同一firefox实例执行。 问题答案: 在以下位置初始化firefox驱动程序:

  • 原因是:groovy.lang.MissingPropertyException:无法将tile1解析为Pages.LoginPage的内容或导航器上下文中的属性。tile1是您忘记导入的类吗? 它在loginPage中寻找tile1,而不是主页。

  • 我想要一个选项卡布局,其中,在每个选项卡上有两个片段,一个在上面显示任务的进度,通过在3个选项卡中提供从开始到结束的输入来完成,和另一个在进度片段下面的主片段将接受输入。 我试了两天所有的方法:( 我的解决方案我尝试了一个包含两个framelayout的布局,用于将主片段添加到ViewPager的两个选项卡中,如下所示: 在活动开始时,我执行此操作,请参见在主片段中用于加载不同标签位置的详细片段的

  • 问题内容: 我有一个Spring应用程序,我希望能够在配置之间进行切换,这取决于我是调试服务器还是服务器正在生产中。(配置的区别在于数据库位置。) 理想情况下,我想在启动时将命令行参数传递给我的Spring应用程序并设置应用程序配置。 我有两个单独的application.properties文件,一个带有生产值,另一个带有调试值。如何在两者之间切换? 问题答案: 您可以有3个属性文件,和。您可以