访问公式测试块中的下载文件

Ale*_* A. 7 ruby homebrew

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

test do
  system "make", "test"
end
Run Code Online (Sandbox Code Playgroud)

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

bfo*_*ine 1

test do块旨在测试公式是否已正确安装,而不是运行测试套件。如果测试\xe2\x80\x99t花费太长时间,您可以将它们作为安装的一部分运行:

\n\n
def install\n  # ...\n  system "make", "test"\n  # ...\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

要回答您的问题,\xe2\x80\x99s 没有可靠的方法来获取原始解压目录,因为它\xe2\x80\x99s 在安装后被破坏,并且用户可能已删除缓存的 tarball(例如brew cleanup),因此您\xe2\x80 \x99d 必须重新下载它。

\n\n

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

\n\n
def install\n  # ...\n  libexec.install "tests"\nend\n\ntest do\n  cp_r (libexec/"tests"), "."\n  cd "tests" do\n    # I\xe2\x80\x99m assuming the Makefile\'s paths can be given\n    # as variables here.\n    system "make", "test", "LIB=#{lib}", "INCLUDE=#{include}"\n  end\nend\n
Run Code Online (Sandbox Code Playgroud)\n