将|添加到mycroft-speak和mycroft-say-to中,以打开脚本选项。
fruv7luv1#
遇到了一个问题,那就是创建单元测试。主要的问题是我不清楚bin/脚本的单元测试在哪里。
yvgpqqbh2#
我认为我们还没有为这些脚本编写任何单元测试。由于这些测试是针对shell脚本的,它们是单元测试还是集成测试?基本上,它们是否可以独立运行,还是需要一个mycroft示例?
uinbv5nw3#
我猜集成会更合适(根据我的理解,脚本只是将预先配置的消息发送到消息总线上)。
xt0899hw4#
是的,它们就是这样工作的。我认为在test/integrationtests文件夹下添加一个目录将是它们最好的位置。
yv5phkfx5#
所以类似:test_mycroft-speak_bash_pipetest_mycroft-speak_argtest_mycroft-say-to_bash_pipetest_mycroft-say-to_arg说实话,我也不知道如何为与Python交互的bash脚本编写测试。我需要设置一个模拟消息总线来确保消息被正确接收,以及Mycroft正确响应吗?
5tmbdcev6#
对于集成测试,它将与正在运行的mycroft消息总线进行交互。我不确定自己实现这个功能的最佳方法是什么。
假设测试将连接到消息总线,监听speak消息。然后作为子进程启动脚本,等待一小段时间,并检查是否收到了预期的消息。
这样做有点复杂。如果你愿意在没有测试的情况下提交更改,那是可以的。但如果为底层的消息总线发送函数编写单元测试,可能会是更好的投资时间。
dpiehjr47#
当前,这个命令可以处理来自echo命令的离散消息,但不能处理cat或文本流。
我想实现但目前无法实现的场景:
cat testfile | mycroft-speak tail -f testfile | mycroft-speak
xargs可能是解决这个问题的方法,但仍然不如简单地使用|来实现。
tkclm6bt8#
对于我来说,这个方法是有效的:
$ echo "hello there" > say.txt $ cat say.txt hello there $ cat say.txt | ./bin/mycroft-speak
kqlmhetl9#
这对我来说也行。这似乎更多地是关于新行字符和其他字符的问题。也许我们需要过滤掉特殊字符?我的测试文件有:你好基诺比将军以及mycroft-say文件,其中有一个#,这也失败了。
9条答案
按热度按时间fruv7luv1#
遇到了一个问题,那就是创建单元测试。主要的问题是我不清楚bin/脚本的单元测试在哪里。
yvgpqqbh2#
我认为我们还没有为这些脚本编写任何单元测试。
由于这些测试是针对shell脚本的,它们是单元测试还是集成测试?基本上,它们是否可以独立运行,还是需要一个mycroft示例?
uinbv5nw3#
我猜集成会更合适(根据我的理解,脚本只是将预先配置的消息发送到消息总线上)。
xt0899hw4#
是的,它们就是这样工作的。我认为在test/integrationtests文件夹下添加一个目录将是它们最好的位置。
yv5phkfx5#
所以类似:
test_mycroft-speak_bash_pipe
test_mycroft-speak_arg
test_mycroft-say-to_bash_pipe
test_mycroft-say-to_arg
说实话,我也不知道如何为与Python交互的bash脚本编写测试。我需要设置一个模拟消息总线来确保消息被正确接收,以及Mycroft正确响应吗?
5tmbdcev6#
对于集成测试,它将与正在运行的mycroft消息总线进行交互。我不确定自己实现这个功能的最佳方法是什么。
假设测试将连接到消息总线,监听speak消息。然后作为子进程启动脚本,等待一小段时间,并检查是否收到了预期的消息。
这样做有点复杂。如果你愿意在没有测试的情况下提交更改,那是可以的。但如果为底层的消息总线发送函数编写单元测试,可能会是更好的投资时间。
dpiehjr47#
当前,这个命令可以处理来自echo命令的离散消息,但不能处理cat或文本流。
我想实现但目前无法实现的场景:
xargs可能是解决这个问题的方法,但仍然不如简单地使用|来实现。
tkclm6bt8#
对于我来说,这个方法是有效的:
kqlmhetl9#
这对我来说也行。
这似乎更多地是关于新行字符和其他字符的问题。也许我们需要过滤掉特殊字符?
我的测试文件有:
你好
基诺比将军
以及mycroft-say文件,其中有一个#,这也失败了。