问题标签 [fixtures]

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 投票
9 回答
37545 浏览

django - 在 django 单元测试中加载固定装置

我正在尝试开始为 django 编写单元测试,但我对固定装置有一些疑问:

我为我的整个项目数据库(不是某些应用程序)制作了一个夹具,我想为每个测试加载它,因为看起来只为某些应用程序加载夹具是不够的。

我想将夹具存储在/proj_folder/fixtures/proj_fixture.json.

我已经FIXTURE_DIRS = ('/fixtures/',)在我的 settings.py 中设置了。然后在我的测试用例中我正在尝试

但我的固定装置不加载。如何解决?如何添加搜索灯具的地方?一般来说,是否可以为每个应用程序中的每个测试加载整个 test_db 的夹具(如果它非常小)?谢谢!

0 投票
1 回答
347 浏览

ruby-on-rails - 如何让 Rails 测试夹具在测试之间持久化?

我的 Rails 测试套件中有六个很好的装置 - 有些相当大 - 代表数据库中的静态查找表。由于理论上它们的值不会改变,我想节省在每次测试之间擦拭和重新加载表格的时间。是否有技巧/插件/gem/hack 将这些固定装置划分为只需要在所有测试运行之前加载一次而不在每个测试之间擦除?

0 投票
2 回答
1138 浏览

testing - 固定装置的 Friendly_id(蛞蝓)

我在我的应用程序中使用了 freindly_id。我在我的应用程序中设置了一些固定装置。我想对它们进行集成测试。在测试期间,我需要friendly_id,但从夹具创建的数据库记录在 Slug 表中没有相应的 slug。

不是从夹具数据自动创建的 slug 吗?如果没有,那么有什么办法可以解决?

0 投票
2 回答
1428 浏览

django - 带有加载夹具的 Django 单元测试,用于解决几个相关的应用程序问题

我现在正在对已经存在的代码进行单元测试。我面临下一个问题:

在运行 syncdb 创建测试数据库后,Django 会自动填充几个表,如 django_content_type 或 auth_permissions。

然后,想象一下我需要运行一个复杂的测试,比如检查用户注册,这将需要大量的数据表和它们之间的连接。

如果我尝试使用我现有的整个数据库来制作夹具(这对我来说相当方便) - 我会收到类似这里的错误。发生这种情况是因为 Django 已经填充了 django_content_type 之类的表。

下一种可能的方法是使用 django dumpdata --exclude 选项来填充已填充的 syncdb 表。但这也不能很好地工作,因为如果我从我的数据库和用户权限表中获取用户和用户组对象,这是由 syncdb 自动创建的,我会收到错误,因为连接它们的主键现在指向错误。在“夹具地狱”部分更好地描述,但那里显示的解决方案看起来不太好)

我看到的下一个可能的方案是下一个:

  1. 我正在运行我的测试;Django 创建测试数据库,创建 syncdb 并创建所有这些表。
  2. 在我的测试设置中,我删除了这个数据库,创建了新的空白数据库。
  3. 也在测试设置中从现有数据库加载数据转储
0 投票
2 回答
10596 浏览

ruby-on-rails - 在 Rails 单元测试中,如何让用户夹具加载其关联的配置文件?

在有关 Fixtures ( http://api.rubyonrails.org/classes/Fixtures.html ) 的文档中,他们提供了以下使用标签引用进行关联的示例:

因此,在他们的带领下,我有一个拥有_one :profile 的用户模型,一个属于_to :user 的配置文件模型,并尝试根据他们的示例设置固定装置:

(注意:因为我的关联是单向的,所以用户夹具没有“profile:reginalds_profile”关联——将其放入会导致错误,因为 SQL 表没有 profile_id 属性。)

问题是,在我的单元测试中,一切似乎都正确加载,但 users(:reginald).profile 始终为零。我错过了什么?

0 投票
2 回答
3309 浏览

php - 如何将 HTML 存储在 Doctrine YML 夹具中

我正在使用 Symfony 1.4(Doctrine 1.2)中的 CMS 类型的站点,令我沮丧的一件事是无法将 HTML 页面存储在 YML 装置中。相反,如果我想删除和重建数据,我必须创建数据的 SQL 备份,当 Symfony/Doctrine 有一个非常棒的机制可以做到这一点时,这有点麻烦。

我可以编写一种机制,为每个页面读取一组 HTML 文件并以这种方式填充数据(甚至将其编写为任务)。但在我走这条路之前,我想知道是否有任何方法可以将 HTML 存储在 YML 固定装置中,以便 Doctrine 可以简单地将其导入数据库。

更新:

我尝试过使用symfony doctrine:data-dumpsymfony doctrine:data-load但是尽管转储使用 HTML 正确创建了夹具,但加载任务似乎使用 HTML“跳过”列的值并将其他所有内容输入到行中。在数据库中,该字段不显示为“NULL”,而是显示为空,因此我相信 Doctrine 将列的值添加为“”。

下面是symfony doctrine:data-dump创建的 YML 夹具的示例。我尝试过symfony doctrine:data-load针对各种形式的运行,包括删除所有转义字符(新行和引号只留下尖括号),但它仍然不起作用。

0 投票
3 回答
2165 浏览

ruby-on-rails - Ruby on Rails:访问生产数据库数据以进行测试

使用 Ruby on Rails,我有没有办法将我的生产数据库转储为 Rails 的测试部分可以访问的表单?

我正在考虑将生产数据库转换为固定装置的方法,或者将数据从生产数据库迁移到不会被 Rails 例行清除的测试数据库的方法。

我想将这些数据用于各种测试,但我认为最重要的是在性能测试中使用真实数据,这样我才能对加载时间有一个真实的了解。

0 投票
2 回答
3891 浏览

ruby-on-rails - 使用带有 factory_girl 的固定装置

在建造以下工厂时:

ResumeType.first返回nil,我得到一个错误。

ResumeType记录是通过固定装置加载的。我使用控制台进行了检查,条目在那里,表不是空的。

我在 factory_girl 邮件列表中找到了一个类似的示例,它应该可以工作。

我错过了什么?在运行测试之前,我是否必须以某种方式告诉 factory_girl 设置固定装置?

这就是我的 test_helper 的样子:

0 投票
1 回答
2151 浏览

django - Django:文本夹具无法加载

做了我项目的转储数据,然后在我的新测试中我将它添加到夹具中。

运行测试时,我得到:

安装夹具“XXX/fixtures/test_data.json”时出现问题:

DoesNotExist:XXX 匹配查询不存在。

但是当数据库为空时,手动执行 loaddata工作正常。我做了一个dropdb,创建了一个简单的syncdb,尝试加载数据,但失败了,同样的错误。

有什么线索吗?

Python 版本 2.6.5,Django 1.1.1

0 投票
3 回答
4846 浏览

junit - JUnit 最佳实践:每个 @Test 的不同夹具

我知道有@Beforeand @BeforeClass,它们用于定义@Test's 的固定装置。但是,如果我需要为每个设备使用不同的固定装置,我应该使用什么@Test

  • 我应该在 中定义夹具 @Test吗?
  • 我应该为每个创建一个测试类@Test吗?

我在这里寻求最佳实践,因为我认为这两种解决方案都不干净。使用第一个解决方案,我将测试初始化​​代码。使用第二种解决方案,我将打破“每个类一个测试类”的模式。