【问题标题】:Getting Error while running Mutation testing on Python code : AttributeError: 'MutationTestRunnerThread' object has no attribute 'isAlive'在 Python 代码上运行突变测试时出错:AttributeError:“MutationTestRunnerThread”对象没有属性“isAlive”
【发布时间】:2021-01-08 03:29:15
【问题描述】:

我正在使用Mut.py 进行 Python 编程变异测试。单元测试通过,当我使用命令在命令行上运行 Mutation 测试时,我收到这样的错误。

C:\Users\pc\Desktop\My_Projects\Calculator01>mut.py --target simpleCalculator.py --unit-test test_simpleCalculator.py --runner pytest --coverage
Traceback (most recent call last):
  File "C:\Users\pc\AppData\Local\Programs\Python\Python39\Scripts\mut.py", line 7, in <module>
    commandline.main(sys.argv)
  File "c:\users\pc\appdata\local\programs\python\python39\lib\site-packages\mutpy\commandline.py", line 10, in main
    run_mutpy(parser)
  File "c:\users\pc\appdata\local\programs\python\python39\lib\site-packages\mutpy\commandline.py", line 61, in run_mutpy
    mutation_controller = build_controller(cfg)
  File "c:\users\pc\appdata\local\programs\python\python39\lib\site-packages\mutpy\commandline.py", line 73, in build_controller
    return controller.MutationController(
  File "c:\users\pc\appdata\local\programs\python\python39\lib\site-packages\mutpy\controller.py", line 60, in __init__
    self.runner = runner_cls(self.test_loader, self.timeout_factor, self.stdout_manager, mutate_covered)
  File "c:\users\pc\appdata\local\programs\python\python39\lib\site-packages\mutpy\test_runners\base.py", line 150, in __init__
    self.init_modules = self.find_init_modules()
  File "c:\users\pc\appdata\local\programs\python\python39\lib\site-packages\mutpy\test_runners\base.py", line 209, in find_init_modules
    test_runner.terminate()
  File "c:\users\pc\appdata\local\programs\python\python39\lib\site-packages\mutpy\utils.py", line 357, in terminate
    if self.isAlive():
**AttributeError: 'MutationTestRunnerThread' object has no attribute 'isAlive'**

谁能帮忙?

【问题讨论】:

    标签: python-3.x mutation


    【解决方案1】:

    我最近遇到了同样的问题,这里有一个对我有用的快速修复:

    • 打开错误消息中显示的 utils.py
    • 转到错误消息中显示的“if self.isAlive():”行
    • 进行以下更改: if self.isAlive(): 变成 if self.is_alive():

    我的电脑在 Windows 10 上运行 python 3.9.0,mutpy 0.6.1。

    【讨论】:

    • 非常感谢,它部分工作,至少得到认可。现在我得到了不同的错误。对不起,愚蠢的问题...因为我是编程技能的新手..C:\Users\pc\Desktop\My_Projects\Calculator01>mut.py --target simpleCalculator.py --unit-test test_simpleCalculator.py --runner pytest --coverage [] 开始变异过程:- 目标:simpleCalculator.py - 测试:test_simpleCalculator.py [] 无法加载模块:test_simpleCalculator.py (ModuleNotFoundError: No module named 'test_simpleCalculator')
    • 我测试了你输入的命令,对我来说效果很好。我会检查名称“simpleCalculator.py”和“test_simpleCalculator.py”是否正确。如果这不起作用,我会验证您的命令是否在正确的目录中运行。
    • 嘿,谢谢.. 我认为这与包和模块有关.. 我已修复,现在可以使用.. 非常感谢.. 现在我可以生成报告了...
    • 您是否还知道如何在 HTML 上生成报告摘要...。另外,我正在 Azure DevOps Pipeline 中对其进行测试。在 Azure DevOps 中是否有任何扩展可以报告?非常感谢..
    • 不确定是不是你问的,但是你可以使用“coverage html”命令生成HTML测试结果。关于 Azure DevOps,我没有经验。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2021-03-27
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多