问题标签 [database-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
435 浏览

phpunit - 如何在 ZF3 应用程序的功能 PHPUnit 测试中关闭数据库连接并减少它们的数量?

几年前,我已经在 StackOverflow 上提出了一个非常相似甚至几乎相同的问题。我得到了非常详细的答案,但它们并没有解决我的问题。现在,问题变得更大,我在这里开始第二次尝试解决这个问题。由于代码已更改,我不想更新原始问题。这将是一个太大的更新,答案可能与新版本的问题不匹配。所以我将它制定为一个新的:

我正在使用 Zend Framework 3 应用程序编写功能测试

  • zendframework/zend-test 3.2.2,
  • phpunit/phpunit6.5.14
  • phpunit/dbunit3.0.3

大多数测试是一种控制器测试。Zend\Test\PHPUnit\Controller\AbstractControllerTestCase#dispatch(...)测试代码通过使用并分析 1. 响应/输出数据和 2. 数据库中的更改(如果它是像“create foo”这样的写入调用)来调用 URI / 操作,例如:

对于每一个测试,数据库都会重置。

问题是,数据库连接的数量在不断增长——随着每次下一次测试。目前有大约350( SHOW GLOBAL STATUS LIKE 'max_used_connections';) 个连接用于102测试。(作为一种解决方法,我必须max_connections越来越多地增加 MySQL。)

$this->dbAdapter->getDriver()->getConnection()->disconnect();我试图通过将类似或/和$this->entityManager->getConnection()->close();之类的逻辑放在tearDown()我的超类的控制器测试中来减少连接数。这样我的连接数减少了大约90. 但是大多数连接仍然没有被杀死。

如何在 ZF3 应用程序的功能/控制器 PHPUnit 测试中关闭数据库连接并显着减少同时打开的连接数?


附加信息:我的代码中最相关的部分

在此处输入图像描述

AbstractControllerTest

DatabaseConnectionTrait

DatabaseInitializer

Bootstrap

0 投票
0 回答
974 浏览

python - 如何在 Windows 中使用 SQLAlchemy 对 Postgres 执行单元测试?

我正在开发一个用于 API 的 Flask 应用程序,并创建了一些 Flask-SQLAlchemy 模型。我编写了一个函数,该函数使用 Flask-SQLAlchemy 将字典列表作为行插入到 Postgres 数据库模型表中。

当我点击调用插入函数的 API 时,它会将数据插入主 Postgres 数据库。现在我正在为插入功能编写测试用例。但我不想将数据插入到我的主 Postgres 数据库中。

相反,我想将数据插入临时的虚拟 Postgres DB,并使用我拥有的模型创建表并将行插入这些表中。

我已经通过测试 postgres db pythonPython 单元测试:如何对包含数据库操作的模块进行单元测试?还。它没有多大帮助。有没有其他方法可以使用 Python、Flask-SQLAlchemy 对虚拟 Postgres DB 进行单元测试?

0 投票
1 回答
286 浏览

junit5 - 数据库骑手。从特定表中排除列

我预期的数据集包含几个表。是否可以从特定表中排除列?

0 投票
1 回答
50 浏览

java - 使用 MySQL 数据库进行 Java Spring Boot 测试

我在 Spring Boot 中对此 CRUD 操作的测试继续失败,出现“java.util.NoSuchElementException: No Value Present” 我知道 testCreateDemographic 正在创建记录,但是 testFindDemographicsById 无法找到新创建的记录,因为它是在 findById(1L) 中使用“1L”查找记录。如何获取正确的新相关记录 ID 以放置在 findById() 参数中?

以下是我的错误:

0 投票
1 回答
150 浏览

robotframework - 如何在python中将SQL查询的结果存储为字符串

我在 python 中使用机器人框架,我在下面的查询中运行:

它给了我以下结果:

如何将上述结果转换为字符串?

0 投票
1 回答
85 浏览

php - 如何在 Laravel 工厂中定义 belongsTo 关系?

我有一个帖子、用户和国家模型。

一个 Post belongsTo 作为 User 。一个用户属于一个国家。

有没有办法在 post factory 之后调用 User 和 Country 工厂?

有点像

->save()不适用于belongsTo

使用拉拉夫 7.2

0 投票
0 回答
136 浏览

sqlite - 在 Github 操作上的内存数据库上运行 PDO SQLite 查询

我使用 PHPUnit 通过 PDO 包装器进行测试。我的一个测试是集成测试,它证明抽象层产生正确的语法,或PDOStatement以正确的方式绑定等。为此,我使用内存中的 SQLite 数据库,并声明ext-pdo_sqlite为我的项目的开发依赖项.

当 Github Actions 运行构建时,所有依赖项都会安装,提示pdo_sqlite系统上存在。连接成功的事实进一步证实了这一点。但是,当我运行插入查询来设置我的数据库时,我收到以下错误:

查询如下所示:

表创建是使用 PDO 完成的,如下所示:

这仅体现在 CI 上,并且本地测试通过良好 - 即使在与 CI 相同的 PHP 版本上也是如此。

有任何想法吗?我只是在语法中遗漏了一些东西吗?会不会是 GH Actions 只有 SQLite 的虚拟实现之类的?

注意:这是一个开源项目,您可以在dhii/pdo-query#1.

0 投票
1 回答
192 浏览

jmeter - JMeter Unable to connect AWS RDS getting error java.sql.SQLException: Cannot create PoolableConnectionFactory (Communications link failure

我必须将我的 JMeter 脚本连接到 AWS RDS 数据库。当我使用以下 JDBC 连接配置运行测试时,它显示以下错误消息:

JDBC连接配置:

JDBC 连接配置屏幕截图

JDBC 请求:

JDBC 请求截图

响应错误信息:

错误信息截图

我已经在 J​​meter 的 /lib 文件夹中添加了 mysql-connector-java-8.0.25.jar 文件,但它没有帮助。