我建立了一个全新的PyCharm项目以对其进行测试。截至几个小时前,我到处都可以看到打印报表,没有任何问题。到目前为止,在任何项目中使用任何打印语句都会导致整个过程永远旋转,最终由我的操作系统使用代码137 SIGKILL 9命令自动关闭。
以下代码是我能想到的最简洁的示例:
import unittest
def hellothere():
pass
class TestTest(unittest.TestCase):
def setUp(self):
stuff = hellothere()
print(stuff)
def test(self):
pass
值得注意的是,将stuff = hellothere()
更改为stuff = str(hellothere())
并删除了打印作品,并且返回而不是打印作品也是如此。
我尝试在终端中进行设置,但是当我在终端中运行时,得到ValueError: no such test method in <class '__main__.TestTest'>: runTest
。
dmesg报告low swap: killing largest compressed process with pid 6093 (python2.7) and size 1051 MB
,但我在那里找不到任何其他相关信息。
和python 2.7。
答案 0 :(得分:1)
奇怪的行为,也许您简化的示例没有原始代码所拥有的内容?
我尝试了以下代码:
import unittest
def hellothere():
pass
class TestTest(unittest.TestCase):
def setUp(self):
self.stuff = hellothere()
print("this is", self.stuff)
# fixed: you need test_ for test discovery
def test_smth(self):
pass
assert self.stuff is None
if __name__ == '__main__':
unittest.main()
它既可以用作python test_abc.py
也可以用作python -m unittest test_abc
,其结果如下:
this is None
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
还必须有其他因素才能使测试进入无限循环。我会尝试在没有pycharm的控制台中运行测试以进行进一步检查。
更新:以下是该问题的OP解决方案,它与虚拟环境有关。我们仍然不知道什么使单元测试中的print()
感到窒息,但学会了避免它。
我的课程是,使用PyCharm这样的重量级IDE尝试在命令行中复制任何问题。同样,似乎IntelliJ支持也很on similar issues。
我只是想通了。当我创建一个新项目时,只是在我的项目解释器中使用的虚拟环境被复制了,这就是为什么创建一个新项目不能修复它的原因。我使用新的虚拟环境创建了新的解释器,问题已解决!