![]() |
1
3
这显然是一个老问题,所以当原始答案发布在这里时,Asterisk很有可能没有像今天这样支持单元/集成测试(尽管单元测试框架API于2009年12月22日发布,因此至少确实存在)。 单元测试框架(dev列表中David的电子邮件) here )允许您直接在星号内执行单元测试。测试在框架中注册,可以通过CLI执行/查看。因为这都是Asterisk的一部分,所以测试被编译到可执行文件中。您必须使用--enable dev mode选项配置星号,并使用menuselect工具标记要编译的测试(一些应用程序,如app_voicemail,会自动注册测试,但它们是少数)。
这很可能不是大多数Asterisk用户想要使用的——尽管Asterisk开发者被强烈鼓励去查看它。用户和开发人员可能都对集成测试感兴趣,而 Asterisk Test Suite 提供。测试套件的核心是一个python脚本,它可以执行其他脚本——可以是lua、python等。测试套件附带了一组python和lua库,帮助编排和执行多个星号实例。测试编写者可以使用第三方应用程序(如SIPp或Asterisk Interface(AMI、AGI))或其组合来测试托管的Asterisk实例。 该测试套件中现在有近200个测试,并且定期添加更多测试。显然,您可以编写自己的测试来执行星号配置,并由测试套件管理这些测试-如果它们足够通用,您也可以将它们提交以包含在测试套件中。 请注意,测试套件的设置可能有点棘手-Leif写了一篇关于设置测试套件的好博客文章 here . |
![]() |
2
3
嗯,这取决于你在测试什么。处理这类事情有很多方法。我的首选是使用与拨号计划代码捆绑在一起的星号呼叫文件。例如:创建一个callfile来拨打某个公共号码,一旦应答,跳回指定的拨号计划上下文并执行我的所有测试逻辑(播放声音文件、监听按键等) http://pycall.org/ . 那可能对你有帮助。 祝你好运 |
![]() |
3
1
您可以创建一组特定场景,并使用Asterisk的MixMonitor命令记录这些调用。这将使您能够为这些测试建立一套系统规范的录音,并使用自动声音文件比较工具(可能来自 comparing-sound-files-if-not-completely-identical ?)检查结果。只是个主意。 |
![]() |
4
1
与集成测试相反,单元测试意味着您的代码应该是结构化的,因此逻辑本身与外部依赖性是隔离的。您说过“配置文件和其他任何东西一样都是一种编程语言”,但事实就是如此——真正的语言不仅具有控制流,而且具有抽象功能,允许您以可以进行单元测试的方式编写逻辑。这就是为什么我尽可能把逻辑排除在星号之外。
|
|
wavesinaroom · 断言结构向量长度 5 月前 |
![]() |
Tim Kirkwood · 比较空数据帧 6 月前 |
![]() |
Kamran Khan · 使用单元测试ASP。NET核心 10 月前 |
![]() |
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 11 月前 |
![]() |
Ricky Mo · 角度测试如何模拟导入的const 11 月前 |
![]() |
Natty · Visual Studio中缺少“代码覆盖率结果” 11 月前 |