我正在为包含自己的测试套件的C库创建一个Homebrew公式.作为test公式块的一部分,我想运行下载文件中包含的测试.测试作为make目标(make test)运行.但是,Homebrew test块在自己的临时目录中运行,下载的文件不在路径中.也就是说,以下不起作用,因为它找不到文件:
test do
system "make", "test"
end
Run Code Online (Sandbox Code Playgroud)
如何访问最初下载和解压缩文件的位置?我无法在文档中找到有关该信息的任何信息.或者在这种情况下是否有更好的Homebrew测试解决方案?
该test do块旨在测试公式是否已正确安装,而不是运行测试套件。如果测试\xe2\x80\x99t花费太长时间,您可以将它们作为安装的一部分运行:
def install\n # ...\n system "make", "test"\n # ...\nend\nRun Code Online (Sandbox Code Playgroud)\n\n要回答您的问题,\xe2\x80\x99s 没有可靠的方法来获取原始解压目录,因为它\xe2\x80\x99s 在安装后被破坏,并且用户可能已删除缓存的 tarball(例如brew cleanup),因此您\xe2\x80 \x99d 必须重新下载它。
解决方案是在步骤中将必要的测试文件复制到某个位置install然后直接使用它们或在测试时将它们复制到当前目录中,例如:
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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |