访问公式测试块

时间:2016-06-05 05:09:27

标签: ruby homebrew

我正在为包含自己的测试套件的C库创建一个Homebrew公式。作为公式的test块的一部分,我想运行下载文件中包含的测试。测试以make目标(make test)运行。但是,Homebrew test块在其自己的临时目录中运行,并且下载的文件不在路径中。也就是说,以下不起作用,因为它找不到文件:

test do
  system "make", "test"
end

如何访问最初下载和解压缩文件的位置?我无法在文档中找到有关该信息的任何信息。或者在这种情况下是否有更好的Homebrew测试解决方案?

1 个答案:

答案 0 :(得分:1)

test do块用于测试公式是否已正确安装,而不是运行测试套件。如果测试时间不长,您可以在安装过程中运行它们:

def install
  # ...
  system "make", "test"
  # ...
end

要回答你的问题,没有可靠的方法来获取原始的解压缩目录,因为它在安装后被销毁,用户可能已经删除了缓存的tarball(例如brew cleanup),因此你必须重新下载它

解决方案是在install步骤中的某处复制必要的测试文件,然后直接使用它们或在测试时将它们复制到当前目录中,例如:

def install
  # ...
  libexec.install "tests"
end

test do
  cp_r (libexec/"tests"), "."
  cd "tests" do
    # I’m assuming the Makefile's paths can be given
    # as variables here.
    system "make", "test", "LIB=#{lib}", "INCLUDE=#{include}"
  end
end