使用测试/虚拟应用程序测试Rails gem,/ tmp文件夹被破坏......不知何故

时间:2013-02-25 22:57:44

标签: ruby-on-rails testing ruby-on-rails-3.2 gem

我正在编写一个gem,必须根据app启动时的配置选择哪个版本的XYZ.js文件可用于sprockets //= require "XYZ"语句。我的解决方案是将Rails应用中的XYZ.variant.jsXYZ.variant2.js复制到/tmp/cache/<gemname>/XYZ.js。如果我手动测试,这似乎有效;如果我转到test/dummy文件夹并通过rackup测试功能,则XYZ.js已正确找到。如果我通过另一个rails应用程序测试gem,它可以工作(通过Gemfile中的path:)。

但是,当我为这个gem运行测试套件时,它失败了,因为在初始复制到/tmp/cache/<gemname>/XYZ.js之后的某个时刻,整个tmp文件夹被清除,并且当时它的唯一内容是test实际运行的是/tmp/cache/assets。我不明白这是如何与测试套件和其他2种工作方法不同的表现。这就像初始化顺序不同或类似。是否存在通过rackup运行的特殊内容会改变初始化顺序?

请注意,在执行tmp复制的代码之前,测试套件工作正常。这只是生成的普通enginex代码。

1 个答案:

答案 0 :(得分:0)

这与初始化程序无关,而是另一个破坏tmp文件夹的测试用例(对于生成器)。