相关疑难解决方法(0)

你如何在python中生成动态(参数化)单元测试?

我有一些测试数据,想为每个项目创建一个单元测试.我的第一个想法是这样做:

import unittest

l = [["foo", "a", "a",], ["bar", "a", "b"], ["lee", "b", "b"]]

class TestSequence(unittest.TestCase):
    def testsample(self):
        for name, a,b in l:
            print "test", name
            self.assertEqual(a,b)

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

这样做的缺点是它在一次测试中处理所有数据.我想在运行中为每个项目生成一个测试.有什么建议?

python unit-testing parameterized-unit-test

211
推荐指数
10
解决办法
8万
查看次数

Pycharm - 没有发现任何测试?

我一直在接受

没有发现任何测试

Pycharm中的错误,我无法弄清楚为什么我会得到它...这就是我对我的看法point_test.py:

import unittest
import sys
import os

sys.path.insert(0, os.path.abspath('..'))

from ..point import Point


class TestPoint(unittest.TestCase):
    def setUp(self):
        pass

    def xyCheck(self,x,y):
        point = Point(x,y)
        self.assertEqual(x,point.x)
        self.assertEqual(y,point.y)
Run Code Online (Sandbox Code Playgroud)

而这point.py,我正在尝试测试:

import unittest

from .utils import check_coincident, shift_point

class Point(object):
    def __init__(self,x,y,mark={}):
        self.x = x
        self.y = y
        self.mark = mark

    def patched_coincident(self,point2):
        point1 = (self.x,self.y)
        return check_coincident(point1,point2)

    def patched_shift(self,x_shift,y_shift):
        point = (self.x,self.y)
        self.x,self,y = shift_point(point,x_shift,y_shift)
Run Code Online (Sandbox Code Playgroud)

我的运行配置有问题吗?我看了这篇 SO帖子,但我仍然感到困惑.我的运行配置目前看起来像这样:

在此输入图像描述

我想我只是明白我可能做错了什么?任何帮助将不胜感激,谢谢!

python unit-testing nose pycharm

19
推荐指数
5
解决办法
2万
查看次数

在PyCharm中运行Python包单元测试

我刚刚"移植"了一个我正在写给PyCharm的Python包,并且在从IDE运行整个包的单元测试时遇到了一些麻烦.

__init__.py包中,我的load_tests功能遍及包中的所有模块并加载相关的测试.它运行得非常出色:

$python -m unittest my_package
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从PyCharm运行它时(通过选择Projects窗口中的顶级目录并按Ctrl + Shift + F10),我进入No tests were foundRun窗口,

...\python.exe ...\pycharm\utrunner.py .../my_package/ true
Testing started at ...
Process finished with exit code 0
Empty test suite.
Run Code Online (Sandbox Code Playgroud)

在控制台窗口中.

我快速浏览了PyCharm utrunner.py,它似乎正在寻找具有某种模式的模块(从测试开始).我想保留目前的香草方法.如何配置PyCharm使用load_tests__init__.py在修改尽可能少的代码?

顺便说一句,各个模块的测试套件从PyCharm运行得很好.

使用PyCharm 3.1 Community Edition,Python 2.7.

先感谢您.

pycharm python-unittest

6
推荐指数
1
解决办法
1万
查看次数