我正在使用Visual Studio 2015(Python Tools扩展(调试Python。
我对 Python 很陌生,奇怪的是,当我调试下面的代码时,它会运行到第 18 行,然后是第 19 行,然后是第 18 行,在那里它毫不客气地退出。没有击中我的接球块,没有击中第 20 或 21 行。 无错误消息。 有人知道是什么原因造成的吗?
单元测试正在测试Git Hub上常见的Google api功能。
我的代码:
import unittest
import sys
import os
import exceptions
from _multiprocessing import flags
sys.path.insert(0, "C:UsersJamie.MarshallDocumentsVisual Studio 2015ProjectsGetDCMPlalyStationDataDCMPSDataQuery")
try:
from dfareporting_utils import get_arguments
except ImportError:
print(ImportError.message)
print('No Import')
try:
#Line18
class Test_dfareporting_utility_test(unittest.TestCase):
#Line19
def test_A(self):
flags = get_arguments(sys.argv, __doc__, parents=[argparser])
self.assertEqual(flags[0], "")
except Exception as ex:
print(ex.message)
print(ex.source)
if __name__ == '__main__':
unittest.main()
初始化类时,仅执行类的签名行、类顶层的代码和其中方法的签名行。方法中的代码仅在调用方法时执行。举个例子:
E class MyClass:
|
E my_class_attribute = 1
|
E def my_method(self, a):
N b = a + 1
N return b
E = excuted; N = not executed
除非在类或 def 行上引发错误,否则您在类周围的尝试将不起作用。
结果,除非在其中一行中引发错误,否则您对类的尝试将不起作用。
要在测试中捕获异常,请将try
/except
放入方法中。但是,实际上应该在测试中定义状态,并且错误应该是预期的或不存在的,因此最好预期错误并使用with self.assertRaises(YourErrorType):
进行测试