我遇到PYCharm 3.0.1的问题我无法进行基本的单元测试。
这是我的代码:
import unittest from MysqlServer import MysqlServer
class MysqlServerTest(unittest.TestCase):
def setUp(self):
self.mysqlServer = MysqlServer("ip", "username", "password", "db", port)
def test_canConnect(self):
self.mysqlServer.connect()
self.fail()
if __name__ == '__main__':
unittest.main()
这是pycharm给我的所有东西
无法将测试报告者附加到测试框架或测试框架意外退出
也说
AttributeError: class TestLoader has no attribute '__init__'
事件日志:
2:14:28 PM Empty test suite
问题是我手动运行python文件(使用pycharm,作为脚本)
----------------------------------------------------------------------
Ran 1 tests in 0.019s
FAILED (failures=1)
这是正常的我让测试失败了。对于发生的事情,我有点无能为力 更多信息: 设置 - > Python INtegrated Tools->包需求文件:/ src / test 默认测试运行器:单元测试 pyunit 1.4.1已安装
感谢您提供任何帮助。
编辑:unitests.py
的基本用法也是如此import unittest
class IntegerArithmenticTestCase(unittest.TestCase):
def testAdd(self): ## test method names begin 'test*'
self.assertEquals((1 + 2), 3)
self.assertEquals(0 + 1, 1)
def testMultiply(self):
self.assertEquals((0 * 10), 0)
self.assertEquals((5 * 8), 40)
if __name__ == '__main__':
unittest.main()
答案 0 :(得分:41)
虽然原始海报的情况并非如此,但我还是要注意,导致这种情况的另一个原因是测试功能不会以“测试”这个词开头。 。'
class TestSet(unittest.TestCase):
def test_will_work(self):
pass
def will_not_work(self):
pass
答案 1 :(得分:16)
这可能是因为您没有在设置对话框中正确设置测试框架。
答案 2 :(得分:4)
绝对是一个pycharm thingy,从上面重复,
答案 3 :(得分:1)
我有完全相同的问题。事实证明,识别单个测试的事实与文件名有关。在我的情况下,test_calculate_kpi.py
,即PyCharm在重命名为test_calculate_kpis.py
时未将其视为测试,立即得到认可。
答案 4 :(得分:0)
def test_run1()
来自测试报告包文档的广泛示例代码是
import unittest
import HtmlTestRunner
class TestGoodnessOfFitTests(unittest.TestCase):
def test_run1(self):
...
if __name__ == '__main__':
unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='t.html'))
此代码通常位于测试类文件中,该文件包含所有单元测试和“main”-catcher代码。此代码不断为我发出警告Empty test suite
。因此,删除所有if __name__ ...代码。该文件现在只包含TestGoodnessOfFitTests
类。现在,另外
在测试类文件的同一目录中创建一个新的main.py ,并使用以下代码:
import unittest
import HtmlTestRunner
test_class = TestGoodnessOfFitTests()
unittest.main(module=test_class,
testRunner=HtmlTestRunner.HTMLTestRunner(output='t.html'))
删除旧的运行配置,右键单击main.py并按Run 'main'
。验证Preferences -> Python Integrated Tools -> Default test runner
下的正确设置(在我的情况下是py.test和nose working)
<强>输出强>:
Running tests...
----------------------------------------------------------------------
test_gaussian_dummy_kolmogorov_cdf_1 (tests.evaluation_tests.TestGoodnessOfFitTests) ... OK (1.033877)s
----------------------------------------------------------------------
Ran 1 test in 0:00:01
OK
Generating HTML reports...
答案 5 :(得分:0)
即使我有同样的问题,我也感觉工作空间没有正确刷新。甚至我也执行File-> Synchronize(Ctrl + Aly + y)。但这不是解决方案。我刚刚重命名了我的测试python文件名,然后再次尝试执行代码,它开始运行良好。
答案 6 :(得分:0)
我有同样的问题。该文件名为test_exercise_detectors.py
(请注意复数“检测器”),并且位于一个名为test_exercise_detectors
的打包文件中。将文件名更改为test_exercise_detector.py
(单个“检测器”)可以解决此问题。