gpt4 book ai didi

scons - 如何测试 SCons 修改

转载 作者:行者123 更新时间:2023-12-02 02:32:41 26 4
gpt4 key购买 nike

我的团队正在创建一个基于 SCons 的构建系统。我们在自己的 site_scons/site_tools 文件夹中创建了一堆辅助类。

我的任务是使用 pyunit 在我们的代码上创建和运行测试。测试代码可能位于子文件夹中,目录布局如下所示:

SConstruct
our_source_code/
Sconscript
site_scons/
site_tools/
a.py
b.py
c.py
tests/
test_a.py
test_b.py
test_c.py

现在我的问题是:调用我们的测试的最佳方式是什么,因为它们可能需要设置正确的 SCons 环境? (也就是a.py使用了SCons.Environment)

我添加的是构建器还是命令?还是别的?

最佳答案

我认为最好的方法是使用 test setup code from SCons itself .这需要 SCons 的 SVN check out ,因为测试文件不随常规 SCons tarball 一起提供。这可能是可行的,因为并非您团队中的每个人都会编写工具并在其上运行测试。

例如,this is the test for javac .基本上,您写出所需的文件,运行 SConstruct,然后检查结果是否符合您的预期。您可以使用 Python 脚本模拟工具,以确保它们确实使用您期望的标志和文件进行调用。例如:

import TestSCons
test = TestSCons.TestSCons()
test.write('SConstruct', '''env = Environment(tools = ["yourtool"])
env.RunYourTool()''')

test.write('sourcefile.x', 'Content goes here')
test.run(arguments = '.', stderr = None)

test.must_match('outputfile', 'desired contents')
test.pass_test()

swtoolkit wiki 上还有更多关于编写 SCons 工具测试的说明。 ,这是 Google 看似已失效的 SCons 扩展。 wiki 上的信息仍然有用,并且有一些关于如何为自定义 SCons 工具编写测试的很好的示例。

关于scons - 如何测试 SCons 修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com