我的团队正在创建一个基于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)
我要添加生成器还是命令?还是别的什么?
发布于 2010-06-29 02:41:33
我认为最好的方法是使用test setup code from SCons itself。这需要对SCons进行SVN签出,因为测试文件不是随常规的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工具测试的说明,这是一个来自谷歌的似乎已不存在的SCons扩展。维基上的信息仍然有用,并且有一些关于如何为自定义SCons工具编写测试的很好的示例。
https://stackoverflow.com/questions/3134796
复制相似问题