【问题标题】:Unresolved Unit Test Python [closed]未解决的单元测试 Python [关闭]
【发布时间】:2016-03-16 16:51:07
【问题描述】:

问题:创建单元测试时,如何从其他文件中实例化类?

在我当前的示例中:有两个文件。第一个文件包含我要实例化的类,第二个是 unitTest.py。

Project.PY 有以下内容

class MyNewClass:
  def __init__(self,mystring):
     pass 

我的 UnitTest.py 尝试实例化该类

import project
Class MyNewClassTestCase(unit.TestCase):
        def test_something(self):
         MyNewClass("string")

这里的要求是直接回溯 错误: 追溯 文件:'blahjalalahha',test_something 中的第 6 行 我的新类() 名称错误:全局名称 MyNewClass 未定义

我收到 NameError: MyNewClass is not defined。但是,我使用了 hte IMPORT,所以我应该具有该功能?

【问题讨论】:

  • 是什么提示您某些东西无法正常工作?您能否提供更多详细信息,说明您得到的输出类型不是您所期望的?
  • 在提出此类问题时始终包含回溯。
  • 名称错误:...未定义
  • @Vic 更清楚一点。编辑您的问题并添加完整的 Traceback。我们不在你的真实代码面前知道发生了什么。请提供MCVE
  • 你的代码有一个轻微的语法错误,所以显然不是minimal reproducible example。此外,如果您是import project,则可以通过project.MyNewClass 访问该类。还有,python.org/dev/peps/pep-0008.

标签: python unit-testing


【解决方案1】:

根据您实例化类的方式,您的导入不正确:

这样做:

import project

您必须将您的班级称为:

project.MyNewClass("string")

所以改为这样做:

from project import MyNewClass
Class MyNewClassTestCase(unit.TestCase):
        def test_something(self):
         MyNewClass("string")

仔细阅读this对你有很大帮助。

【讨论】:

    【解决方案2】:

    MyNewClassproject 模块的一部分,这就是为什么您在尝试以您使用它的方式使用它时得到NameError 的原因。您要么需要从正确的模块 project.MyNewClass 引用它,要么需要将名称导入当前模块 from project import MyNewClass

    import project
    
    class MyNewClassTestCase(unit.TestCase):
        def test_something(self):
            project.MyNewClass("string")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 2018-06-18
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      相关资源
      最近更新 更多