问题标签 [test-fixture]

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 投票
2 回答
44644 浏览

c++ - 谷歌测试装置

我试图了解 Google 测试装置是如何工作的。

假设我有以下代码:

当我编译时,为什么它说myPhrase1并且myPhrase2未在TEST_F

0 投票
6 回答
96911 浏览

fixtures - 编程中的固定装置是什么?

我多次听说过这个术语(在编程的上下文中),但找不到任何解释它的含义。有什么好的文章或解释吗?

0 投票
7 回答
115887 浏览

python - 在 py.test 中的每个测试之前和之后运行代码?

我想在我的测试套件中的每个测试之前和之后运行额外的设置和拆卸检查。我查看了固定装置,但不确定它们是否是正确的方法。我需要在每次测试之前运行设置代码,并且需要在每次测试后运行拆卸检查。

我的用例是检查没有正确清理的代码:它会留下临时文件。在我的设置中,我将检查文件,在拆解中我还将检查文件。如果有额外的文件,我希望测试失败。

0 投票
0 回答
32 浏览

ruby-on-rails - 对测试夹具和/或种子数据执行模型验证作为测试数据

我为我的 Rails 应用程序编写了自动匹配的小型测试,有时我需要花费一个小时来追踪为什么我的测试失败,而我使用 Postman 的手动测试却没有。(测试与开发数据库)

问题原来是我的测试装置 (YML) 没有得到验证并直接进入 DB,而我在 Dev DB 中的种子数据经过验证并填充了属性默认值。

我的问题是 1. 如何在测试夹具上强制执行模型验证?可能吗?2. 如何使用seeds.rb 来填充Test DB?

谢谢!

0 投票
1 回答
6195 浏览

sqlalchemy - 如何为 FastAPI 应用程序编写 SQLAlchemy 测试装置

我正在编写一个使用 SQLAlchemy 数据库的FastAPI应用程序。从 FastAPI 文档中复制了示例,为了简洁起见简化了数据库模式。完整的源代码在这篇文章的底部。

这行得通。我可以uvicorn sql_app.main:app通过 Swagger 文档运行它并与数据库交互。当它运行时,它会test.db在工作目录中创建一个。

现在我想添加一个单元测试。像这样的东西。

使用下面的源代码,这将test.db工作目录中的作为数据库。相反,我想为在测试结束时删除的每个单元测试创​​建一个新数据库。

我可以将全局database.enginedatabase.SessionLocal放在运行时创建的对象中,如下所示:

但我不知道如何使用main.get_db,因为Depends(get_db)逻辑最终假设database.engine并且database.SessionLocal在全球范围内可用。

我习惯使用 Flask,它的单元测试工具会为您处理所有这些。我自己不知道怎么写。有人可以告诉我为了在这个框架中为每个单元测试生成一个新的数据库我必须做的最小的改变吗?


简化的 FastAPI/SQLAlchemy 应用程序的完整源代码如下。

数据库.py

模型.py

架构.py

crud.py

主文件

0 投票
3 回答
890 浏览

python - pytest - 如何在特定测试后执行功能

我在几个班级组织了一些测试。我已经有一个 scope=class 的测试夹具,这样它就可以在测试套件(类)之前运行。但是,我需要在一些特定测试后执行一个函数。假设我在一个类中有 100 个测试,我已经有一个夹具可以在这些测试之前执行一个函数,但我还想在 2-3 个这些测试之后运行一个函数。

实现这一目标的最佳方法是什么?可以用固定装置或其他任何东西来完成吗?

0 投票
0 回答
30 浏览

testing - 如果@AfterAll 中的 jUnit 拆卸失败,如何获得通知?

目前使用 jUnit 5.6.0(但会定期升级)。

我有这样的代码:

如果@AfterAll 无法重置数据库,我不会注意到。由于测试通过,我没有理由检查日志。我该如何处理?

我有 3 个建议,但没有一个是好的。

  1. 检查拆解是否有效,否则发送电子邮件(但只有少数人会知道)

  2. 向每个类“isTearDownSuccessfull”添加一个新测试,并在@AfterAll 中以编程方式重新运行该测试(这样会有一个失败的测试,我可以调查并修复 DB/Test)。似乎可以做到,但我没有尝试过,因为它不是那么优雅。

  3. 以某种方式将成功的测试更改为不成功的测试。我不认为这是可能的吗?就像是:

    jUnit.getTest("myTestName").result().changeTo(FAIL)

我怀疑我可能会走错路。有什么建议/见解吗?

谢谢。

0 投票
0 回答
26 浏览

c# - 我们如何参数化来自资源文件的 TestFixture 下的浏览器名称?

我是 C# 新手,一直是 Java 人。尝试在 C# 中创建一个新框架来尝试使用 C#。我正在尝试参数化 TestFixture 下的浏览器名称。这些浏览器名称将来自资源文件。这是我从 StackOverflow 获得的示例代码。

当我运行此代码时,我可以在 FF 和 Chrome 浏览器上运行我的代码,但不是在类中硬编码浏览器名称,而是希望它通过资源文件下的浏览器名称进行控制。这是我的资源文件

在此处输入图像描述

现在我想在这里实现的是资源文件中的浏览器名称应该控制我的TestFixtures。这意味着当我输入单个浏览器名称时,它应该使用单个浏览器运行测试,同样,当我输入更多浏览器名称时,我的 TestFixtures 应该自动设置为多个浏览器。

我知道我们如何使用 Java 在 TestNG.xml 文件中实现这一点,但我们如何在 C# 中实现这一点?任何帮助或任何链接表示赞赏。谢谢