为什么Python单元测试会出现无效语法错误

5
from mark_3 import * # import everything from my module
import unittest # This sets the testing framework and a main program

class TestJoeTree(unittest.TestCase):  # use a meaningful name
def testNoSolution(self):
    self.assertEqual(0, beginRunningMain(r"C:\Users\xxx\exampleNoAns.txt", "hit", "bem")

if __name__ == '__main__':
     unittest.main()  

你好,我正在使用Python 3,但是在运行这个UnitTest类时遇到了困难。然而,我一直收到错误消息,不知道如何在命令提示符中运行此unittest类。

这是截图:enter image description here

有人可以指导我如何解决这个错误吗? 这是我第一次使用Python,并且已经花费数小时寻找解决方案。谢谢。


4
你的代码中缺少一个闭合括号,应该在self.assertEqual(...后面加上一个括号。 - mgilson
你在用什么编辑器编写代码?好的文本编辑器或集成开发环境可以帮助你平衡括号和大括号。另外请注意,在未来提问时,应将整个错误消息复制并粘贴到此处,而不是发布截图。这样可以更轻松地编辑敏感信息。 - Code-Apprentice
@Code-Apprentice,我之前使用的是IDLE Python编辑器,对于初学者来说并不是很友好,不像Visual Studio。你会推荐哪个Python编辑器呢? - hunterex
PyCharm非常好用。它提供了你从VS中习惯的所有功能。社区版是免费提供的。 - Code-Apprentice
2个回答

3
你在assertEqual函数中缺少一个括号,并且没有缩进testNoSolution方法(我认为它是一个方法,因为有self)。
class TestJoeTree(unittest.TestCase):  # use a meaningful name
    def testNoSolution(self):
        self.assertEqual(0, beginRunningMain(r"C:\Users\xxx\exampleNoAns.txt", "hit", "bem"))

缩进问题可能是复制粘贴错误,而不是在此正确格式化。 - Code-Apprentice

0

这一行:

def testNoSolution(self):
    self.assertEqual(0, beginRunningMain(r"C:\Users\xxx\exampleNoAns.txt", "hit", "bem")

缺少一个右括号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接