Chinaunix

标题: python 初级问题 [打印本页]

作者: numen610    时间: 2011-02-21 21:53
标题: python 初级问题
这是复制的一段代码,老运行错误,大家给看看哪里有误,我要做单元测试,也是刚入手python,还没弄懂,谢谢
用python怎么写个脚本抓手机屏幕图片,公司有人写好了,可我找不到他定义的函数,谢谢大家帮忙了。
import sys
import unittest
from unittest import TestCase, FunctionTestCase, TestSuite, TextTestRunner, defaultTestLoader

class MyClass(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def func1(self, x, y):
        return self.x + self.y

    def func2(self, x, y):
        return self.x - self.y

class TestMyClass(TestCase):
    def setUp(self):
        print 'setUp', hex(id(self))
        self.instance = MyClass(1, 2)

    def tearDown(self):
        print 'tearDown'

    def test_func1(self):
        self.assertEqual(self.instance.func1(), 3)


    def test_func2(self):
        self.assertEqual(self.instance.func2(), -1)


if __name__ == '__main__':
    unittest.main()
作者: qu-hao    时间: 2011-02-22 21:01
没做过单元测试,不过看你这段代码,貌似fanc1和fanc2两个函数定义了x, y两个参数,但实际上都没有用
作者: zqy1005    时间: 2011-02-22 23:22
你连错误的信息也没有发表出来,别人怎么能帮你呢、?
作者: numen610    时间: 2011-02-24 22:31
回复 3# zqy1005


    IDLE 2.6.6      
>>> ================================ RESTART ================================
>>>
setUp 0x20ebdf0
tearDown
.setUp 0x20ebe30
tearDown
.
----------------------------------------------------------------------
Ran 2 tests in 0.030s

OK

Traceback (most recent call last):
  File "C:\Python26\unittest0211.py", line 32, in <module>
    unittest.main()
  File "C:\Python26\lib\unittest.py", line 817, in __init__
    self.runTests()
  File "C:\Python26\lib\unittest.py", line 865, in runTests
    sys.exit(not result.wasSuccessful())
SystemExit: False
>>>

这个是运行有的错误信息,Traceback提示看不懂,目前为止还没有解决这个。
作者: numen610    时间: 2011-02-24 22:33
回复 2# qu-hao


    有用啊,
   在后面的testmyclass中assert就用到了,错误信息你看我后面粘贴的内容,谢谢了。
作者: flying_away    时间: 2011-02-25 10:07
window下面cmd运行没有错。

F:\>python b.py
EsetUp 0xad69b0
EtearDown
setUp 0xad69d0
EtearDown

======================================================================
ERROR: str(object) -> string
----------------------------------------------------------------------
TypeError: 'str' object is not callable

======================================================================
ERROR: test_func1 (__main__.TestMyClass)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "b.py", line 25, in test_func1
    self.assertEqual(self.instance.func1(), 3)
TypeError: func1() takes exactly 3 arguments (1 given)

======================================================================
ERROR: test_func2 (__main__.TestMyClass)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "b.py", line 29, in test_func2
    self.assertEqual(self.instance.func2(), -1)
TypeError: func2() takes exactly 3 arguments (1 given)

----------------------------------------------------------------------
Ran 3 tests in 0.016s

FAILED (errors=3)
作者: numen610    时间: 2011-02-25 13:02
回复 6# flying_away


     喔,windows cmd下面我还没有试过,之前都是用IDLE 直接F5运行的,我再试试看,谢谢.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2