gpt4 book ai didi

python - 运行unittest.main()时为"No tests were found"

转载 作者:行者123 更新时间:2023-12-01 02:33:00 30 4
gpt4 key购买 nike

我有一个测试文件和一个主模块文件,其中有一个我正在测试的函数。在测试文件的末尾,我有 unittest.main() 来运行单元测试。但是,当我运行测试文件时,控制台显示“未找到测试”,即使我的文件中有 2 个单元测试(请参见下面的屏幕截图和最后的源代码)。 No tests were found Pycharm当我执行以下操作时,这个问题似乎就消失了:

(1) unittest.main() 包含在 if __name__ == "__main__" (切线:我有点理解这个子句是如何工作的,但是在这种情况下,当 unittest.main() 模块在有 if 子句时正常运行时,与没有 if 子句时相比,它对我来说没有任何意义完全有条件),或者

(2) 当我在 Spyder 中运行测试程序时(我当前使用的是 Pycharm)

因此,我不太确定这是我的 IDE 或我的代码特有的问题。我已经尝试过 recommended fix从这个问答中,但没有一个起作用。如果您知道我应该做什么/配置才能使 unittest.main 正常运行,我将非常感激!

<小时/>

以下是我的程序中的 2 个文件,供您引用;我的测试文件没有返回任何测试,而不是我为其编写的 2 个测试。

---主文件:city_functions.py---

def print_city_country(city, country, population=""):
"""Print 'city, country' from input city and country"""
if population:
formatted_city_country = city + ", " + country + " - population " + str(population)
else:
formatted_city_country = city + ", " + country
return formatted_city_country

---测试文件:test_cities.py---

import unittest
from city_functions import print_city_country


class TestCaseCityCountry(unittest.TestCase):
"""Test function city_country from city_functions module"""

def test_city_country_pair(self):
"""Test for names like Santiago, Chile without population input"""
formatted_city_country = print_city_country("Santiago", "Chile")
self.assertEqual(formatted_city_country, "Santiago, Chile")

def test_city_country_population(self):
"""Test for names like Santiago, Chile, 5000000"""
formatted_city_country_population = print_city_country("Santiago", "Chile", 5000000)
self.assertEqual(formatted_city_country_population, "Santiago, Chile - population 5000000")


unittest.main()

最佳答案

作为 Pycharm 的初学者,Don Kirkby 的 answer对我帮助最大。

解决方案,至少对我来说是简单地从文件中完全删除 unittest.main() 。看来,每次运行测试时,Pycharm 都会默认使用命令 python -m unittest,并且 unittest.main() 方法会弄乱语法。

我希望这对遇到同样问题的其他人有所帮助。

关于python - 运行unittest.main()时为"No tests were found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46584246/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com