您的代码的语法检查是否可以作为不同的步骤?

时间:2017-11-13 10:44:40

标签: python unit-testing testing syntax-checking

我和一些大学有争议,我应该在每次代码修改后进行语法检查,作为不同的步骤,或者我最好依靠单元测试来捕捉可能的语法破坏。 (当然单元测试就是这样)。

这不是一个问题,是否使用或不测试您的代码(当然是,但见下文)

我的用例非常简单,我是Python的新手,并尝试通过修改模型文件来玩一些Web应用程序(MVC)。这些变化非常简单,实际上只有一两行左右,但由于我对Python语法很不熟悉,一些愚蠢的错误(如错误的缩进等)很容易蔓延。

真正的障碍是我通过谷歌云平台(作为应用程序引擎)部署应用程序,因此应用程序需要一段时间才会出现新版本,我可以点击端点并最终查看其错误日志以了解什么是发生。因此,我希望得到一种更简单的方法 - 至少对于这些类型的错误 - 只需在部署之前运行语法检查。

争议的核心部分是我没有被建议明确地进行语法检查,但更好地依赖于更高级别的测试(例如单元测试),就我所说的那样:

1)还没有单元测试(即使我有它们,我也会将它们视为我测试链中的下一步)。

2)我只编辑某个文件(一个且只有一个),只进行了最少的修改,而且我所拥有的错误类型(正如我在Python中所说的那样)是语法错误,而不是逻辑或语义那些,所以我认为我可以安全地进行语法检查,然后给它一个部署。即使我稍后遇到了我的代码的语义/逻辑问题(甚至语法检查通过),这对于高级别测试(单位/接受等)来说无疑是个问题 - 但是现在我只是玩一个用一种语言写的代码我感觉不太舒服。

3)我不会在外面做出改变,也不会给任何人带来麻烦。

4)最后一个论点是有争议的,因为它有点范围,但是我想把它留在这里 - 在某些情况下,即使是轻量级的单元测试也可能是过度的,如果你需要的只是获得语法检查一个文件。考虑这个例子。只需编辑代码到位,部署在服务器上试图修复即时问题,因此不存在任何单元或其他测试,并且您希望确保您的修改不会在语法上破坏代码。

3 个答案:

答案 0 :(得分:3)

如果语法问题导致您出现问题,并且发现这些问题的成本和延迟非常烦人,请首先检查语法。这不仅仅是语法检查。任何导致烦人问题的事情都应该得到某种缓解。计算机对于无聊,重复的任务非常方便。我不会这样做,因为一些语言社区认为解决问题是愚蠢或怪异的(尽管每个社区似乎都有一些版本,除了Smalltalkers;)

其他人可能会认为这是不好的做法,因为明确这样做的成本并不能抵消以后发现的成本。我很少明确地进行语法检查,但之后我会进行单元测试并经常运行。

也许您的解决方案是自动化部署并在那里进行语法检查。如果失败,则部署停止。你没有额外的一步,因为它已经融入了你现在正在做的步骤。

答案 1 :(得分:0)

就个人而言,如果你钻进脑袋,PEP8比大多数时候语法自然而然,就像触摸打字一样。但是,大多数人都知道多种语言,所以我可以想象它很难记住所有语言:)

答案 2 :(得分:-1)

默认情况下,Python会对代码中的函数进行语法检查。此外,此语法检查将查找任何打开括号或未完成的代码行,以确保代码正常工作。但是,语法检查程序并不总是直接突出显示问题。要解决此问题,您只需自己查看代码即可。

如果您需要拼写检查变量名称或字符串之类的内容,我建议将代码复制到拼写检查程序,如Microsoft Word或Grammarly。

我希望这会有所帮助。