如何将预单元测试步骤添加到我的*** Makefile.am?

Posted

技术标签:

【中文标题】如何将预单元测试步骤添加到我的*** Makefile.am?【英文标题】:How do I add a pre-unit-test step to my top-level Makefile.am? 【发布时间】:2014-02-26 15:01:01 【问题描述】:

我应该在我的*** Makefile.am 中添加什么以使 make check 在进入任何子目录之前运行自定义命令?

这里有一些上下文:

当我们的make check 进程进入源代码树中的每个子目录时,它会构建该子目录的单元测试二进制文件,使用scp 将二进制文件复制到目标硬件板,并使用@987654324 在目标上远程运行二进制文件@。我们的开发人员比我们的板子多,所以我们是共享的,而目标平台只设置了一个用户 ID,所以如果我们两个或更多人同时运行 make check,我们会破坏彼此的单元测试二进制文件在目标上。

我希望make check 为每个开发人员在目标上使用一个唯一的子目录,可能在目标唯一用户的主目录中。在make check 运行期间执行任何其他操作之前,我需要确保此子目录存在。

我希望我可以将ssh <board-ip> mkdir -p <unique-dirname-based-on-user> 中的命令添加到我的*** Makefile.am 中的变量或目标中,这将导致该命令在make check 运行开始时运行,在进入任何子目录并进行任何复制之前。

【问题讨论】:

【参考方案1】:

只需让check-recursive 依赖于您要执行的目标。 例如将以下内容添加到您的Makefile.am

check-recursive: pre-check-recursive

.PHONY=pre-check-recursive
pre-check-recursive:
    @echo "called before running check recursively (YOUR CODE HERE)"

【讨论】:

以上是关于如何将预单元测试步骤添加到我的*** Makefile.am?的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要在需要时手动将每个 *.m 文件添加到我的单元测试目标?

将预编译的 .NET 代码作为 Azure 函数执行

如何创建 Qt-Quick 测试

单元测试时如何在 Angular 1.5 中向 $componentController 添加依赖项

如何将预建库添加到 VC++ 解决方案?

如何在 Swift 中设置单元测试?