我有一个Mysql测试容器,我需要在容器启动后导入转储文件。我尝试了下面两个选项。
public class AbstractTest {
public static MySQLContainer<?> mySQLContainer = new MySQLContainer<>("mysql:5.7");
static {
mySQLContainer
.withDatabaseName("myDatabase")
.withCopyFileToContainer(
MountableFile.forClasspathResource("init.sql", 0744),
"init.sql")
.withUsername("root")
.withPassword("root")
.start();
}
@PostConstruct
@SneakyThrows
public void init() {
option 1 // mySQLContainer.execInContainer("mysql -u root -proot myDatabase < init.sql");
option 2 // mySQLContainer.execInContainer("mysql", "-u", "root", "-proot", "myDatabase", "<", "init.sql");
}
////
}
mysql Ver 14.14 Distrib 5.7.35, for Linux (x86_64) using EditLine wrapper
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Usage: mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?
--auto-rehash Enable automatic rehashing. One doesn't need to use
'rehash' to get table and field completion, but startup
////.....
option 2 // mySQLContainer.execInContainer("mysql", "-u", "root", "-proot");
mysql-u root-proot mydatabase
那么我的问题是--如何通过执行Image中的命令在JUnit测试容器中的MySQLContainer中导入SQL转储文件?
您需要一个适用于MySql的应用程序。属性,类似于:
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword
spring.datasource.driver-class-name =com.mysql.jdbc.Driver
#spring.jpa.show-sql: true
然后,您可以在/src/test/资源中添加一个data.sql,它将自动运行。
在使用JUnit进行测试时,我无法理解一些事情,我编写了一些测试,而有些测试似乎可以简单地使用 而且 有些似乎不能与它们一起工作,所以我必须使用 而且 我理解@mockbean是在处理spring容器时使用的,而@mock只是用来复制/模拟某个类及其方法。但是什么时候才是使用@mockbean的最佳时机呢? 上面是我在spring boot应用程序中为一个控制器编写的测试,但当我使用@mock模拟
问题内容: 我想要一个npm脚本来创建/配置/等。最后导入一个SQL转储。整个创建,配置等都可以正常工作,但是,我无法使导入正常工作。永远不会插入数据。这就是我所拥有的(不要嵌套嵌套的回调,因为它们会变成promise): 我还尝试了Sequelize(ORM)进行以下操作: 问题答案: 这是我使用迁移框架设置初始Sequelized导入的方法。这里有很多事情要做,但总之我: 在migration
我正在学习JUnit测试。我想在JUnit中测试getter和setter,但它不起作用。这是第一节课。 我需要如何更改以测试setter?我如何测试它?
我已经在Scala中创建了一个blazegraph RDF4J存储库和连接: 我可以添加语句、检索SPARQL结果等。 现在我想将存储库的内容转储到一个RDF文件中,如下所示: 但是,如果我试图用或替换预期的模型参数,Eclipse会抱怨: 重载方法值write with备选项:(X$1:Iterable[org.openrdf.model.statement],X$2:java.io.write
问题内容: 我想用JUnit测试来验证Java中集合的排序算法。如果我在集合中输入“ B”,“ C”,“ A”并希望对其进行排序(例如,按字母顺序排列),那么使用JUnit进行测试的正确方法是什么? 我实现了Comparable接口,并希望确保排序工作正常。 我想这个问题可以从Java或JUnit扩展到任何语言的常规测试。 问题答案: 我将按 预期的 顺序创建另一个具有值的集合,然后仅检查结果是否
我有一个用PHP/Symfony构建的api,在Docker容器中。我想测试一下。 为此: > 第二:我运行测试:vendor/bin/simple phpunit 在我的测试中,我有以下要求: 如您所见,我请求endpoint"10.110.167.124:8080/api/v1....."。它起作用了,但我知道我不能再这样下去了。 我试着用“localhost”、“localhost:8080