Contact me: hankecnc@gmail.com

Travis CI 的自动化测试覆盖率 #1117

推推 grbl 3年前 (2023-02-02) 242次浏览
打开
Harvie 打开了这个问题 2018 年 12 月 25 日 · 11 条评论
打开

Travis CI 的自动化测试覆盖率#1117

Harvie 打开了这个问题 2018 年 12 月 25 日 · 11 条评论

评论

Travis CI 的自动化测试覆盖率 #1117
合作者
哈维 评论了 2018 年 12 月 25 日  

让我们继续讨论@coddingtonbear#685开始,
我们让 Travis 在 bCNC 项目中工作。有哪些可能性?我想实现以下内容:

  • 使用 travis cloud 自动构建 .exe
  • 使用 travis cloud 自动截屏/截屏
  • 使用 pyserial URL 处理程序挂钩的假 GRBL 脚本进行功能测试
Travis CI 的自动化测试覆盖率 #1117 哈维 补充道 增强 研究和代码清理 需要更多思考的长期想法发布工程 bCNC 如何从开发人员到用户(以及返回)标签 2018 年 12 月 25 日
Travis CI 的自动化测试覆盖率 #1117 Harvie 将此添加到 0.9.33里程碑 2018 年 12 月 25 日
Travis CI 的自动化测试覆盖率 #1117
贡献者
  • 使用 pyserial URL 处理程序挂钩的假 GRBL 脚本进行功能测试

我想要对此的描述和一个小例子。

Travis CI 的自动化测试覆盖率 #1117
贡献者

我在这里写了一个小的假 grbl CLI 应用程序:https ://github.com/coddingtonbear/gcode-receiver ;它有一些限制,我还没有尝试通过 socat 或直接导入将它连接到 bCNC,但这至少是一个步骤。

我提到的这些限制分为两个不同的组;首先是准确性。我写的解释器不是很忠实于现实,虽然移动命令确实需要一些时间才能完成,但我还没有实现机器位置坐标在其起始位置和结束位置之间的插值,所以它会跳到经过可配置的延迟后的目标位置。此外,只实现了少数命令(请参阅此处的方法),目前它只会忽略未知命令

第二组限制是关于如何将其集成到 bCNC 的集成测试中;当前的实现只是一个与标准输入/标准输出交互的控制台应用程序,就好像它是普通的 Grbl 控制台一样;所以要将它按原样连接到 bCNC,需要通过 socat 启动它。话虽如此,在必要时将模块直接导入 bCNC 或让它打开一个套接字并不难——我们只需要创建一个现有GcodeReceiver的子类来覆盖get_commandsend_output, 和start,或者,可能更好:将其现有终端和标准输出/输入交互分解为它自己的子类。

我应该注意,我还没有尝试将它连接到 bCNC;bCNC 完全有可能需要我尚未实现的命令。

所以; 这就是我到目前为止的情况;希望这有帮助!

Travis CI 的自动化测试覆盖率 #1117
合作者作者
哈维 评论了 2018 年 12 月 28 日  

我没有在其起始位置和结束位置之间实现机器位置坐标的插值,因此它会在可配置的延迟后跳到目标位置。

我认为这不需要用于测试目的。我认为这应该尽可能少。但我认为我们可以根据进给率和分段长度来计算延迟……

对于完整的模拟,你应该使用 grbl-sim 无论如何……

当前的实现只是一个与标准输入/标准输出交互的控制台应用程序,就好像它是普通的 Grbl 控制台一样

太棒了。你可以使用 socat,我想它可以安装到 travis 环境中。

正如我所说。我想向 pyserial 添加新的 URL 处理程序。这样的事情exec://python myscript.py很容易做到。已经有用于通过 TCP 连接到远程串行的处理程序,因此基础设施已准备就绪:

https://pyserial.readthedocs.io/en/latest/url_handlers.html

您已经可以在 bCNC 中直接使用它:

Travis CI 的自动化测试覆盖率 #1117

只需在此处添加新的处理程序:

https://github.com/pyserial/pyserial/tree/master/serial/urlhandler

我已经开始讨论这个问题,但到目前为止没有回应,所以请投票:

pyserial/pyserial#393

另请注意,此类处理程序还将允许exec://ssh user@host wrapper /dev/ttyUSB0通过 ssh 连接到远程串行。那会有用的。

如果我们设法将其直接合并到 pyserial 中,这将对每个人都有好处,而不仅仅是 bCNC。

Travis CI 的自动化测试覆盖率 #1117
合作者作者
哈维 评论了 2018 年 12 月 29 日  

GRBL 流的测试套件是非常必要的,因为似乎有一些严重的错误#1108并且它阻止了下一个 bCNC 版本。我并不是说我们需要使用 Travis 将其自动化,但至少我们需要手动测试的方法。

Travis CI 的自动化测试覆盖率 #1117
贡献者

发布#685

Travis CI 的自动化测试覆盖率 #1117
合作者作者

有显示此问题的拉取请求,我认为这实际上可能是测试套件本身的问题:

https://travis-ci.com/vlachoudis/bCNC/jobs/183593669

$ pytest --capture=no --verbose tests/
============================= test session starts ==============================
platform linux2 -- Python 2.7.14, pytest-3.2.3, py-1.5.2, pluggy-0.4.0 -- /home/travis/virtualenv/python2.7.14/bin/python
cachedir: .cache
rootdir: /home/travis/build/vlachoudis/bCNC, inifile:
collected 0 items / 1 errors                                                    
==================================== ERRORS ====================================
_____________________ ERROR collecting tests/test_smoke.py _____________________
../../../virtualenv/python2.7.14/lib/python2.7/site-packages/_pytest/python.py:395: in _importtestmodule
    mod = self.fspath.pyimport(ensuresyspath=importmode)
../../../virtualenv/python2.7.14/lib/python2.7/site-packages/py/_path/local.py:668: in pyimport
    __import__(modname)
../../../virtualenv/python2.7.14/lib/python2.7/site-packages/_pytest/assertion/rewrite.py:212: in load_module
    py.builtin.exec_(co, mod.__dict__)
tests/test_smoke.py:4: in <module>
    import pyautogui
../../../virtualenv/python2.7.14/lib/python2.7/site-packages/pyautogui/__init__.py:65: in <module>
    import pyscreeze
E   SyntaxError: 'return' with argument inside generator (__init__.py, line 168)
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!
=========================== 1 error in 0.23 seconds ============================
The command "pytest --capture=no --verbose tests/" exited with 2.

有什么线索吗?

Travis CI 的自动化测试覆盖率 #1117
贡献者
马里奥巴斯 评论了 2019 年 3 月 10 日  

我知之甚少,但也许错误来自 trochoud3d 当前调用一个参数比以前更多的函数?
先合并cnc、main和trchoid_path文件中的改动,按顺序,解决问题?

Travis CI 的自动化测试覆盖率 #1117
合作者作者

先合并cnc、main和trchoid_path文件中的改动,按顺序,解决问题?

这不是关于合并。测试在您的存储库之上运行。因此无需合并即可使测试成功。它已经包含了您存储库中的所有文件,也许您的存储库中缺少某些内容。

Travis CI 的自动化测试覆盖率 #1117
贡献者

我要遵循哪些步骤?为了更新我的存储库,我通过更改我的 viachoudis 位置提出了提取请求(我不知道这是否是正确的方法)

Travis CI 的自动化测试覆盖率 #1117
合作者作者
哈维 评论了 2019 年 3 月 11 日  

@coddingtonbear已确认。该测试存在问题,因为即使在以前可以的 bCNC 版本上,travis 也无法通过测试。我猜他们已经升级了 Travis 方面的一些东西。在我们弄清楚之前,我暂时禁用了它……

Travis CI 的自动化测试覆盖率 #1117
合作者作者

所以 bCNC 应该主要在 python3 中工作……一些测试现在可能会派上用场。但是为所有内容编写测试可能工作量太大了……

Travis CI 的自动化测试覆盖率 #1117 Harvie 修改了里程碑: 0.9.14.300 , 0.9.16 2020 年 4 月 6 日

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
增强发布工程bCNC 如何从开发人员到用户(以及返回)研究和代码清理需要更多思考的长期想法
项目

还没有

发展

没有分支机构或拉取请求

4人参加
Travis CI 的自动化测试覆盖率 #1117Travis CI 的自动化测试覆盖率 #1117Travis CI 的自动化测试覆盖率 #1117Travis CI 的自动化测试覆盖率 #1117

喜欢 (0)