【问题标题】:Custom Python test suite not filtering and running all cases自定义 Python 测试套件未过滤和运行所有案例
【发布时间】:2018-01-20 23:30:31
【问题描述】:

我创建了一个自定义测试套件,只运行一个测试用例,但所有测试用例都在运行。

class TestBlackboxGame(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.public_path = os.path.join('public', 'index.html')
        cls.game_path = os.path.abspath(os.path.join('..', cls.public_path))
        assert(os.path.exists(cls.game_path))

        cls.driver = webdriver.Chrome()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_open_game(self):
        print('Visiting game at ' + self.game_path)
        self.driver.get(self.game_path)
        self.assertTrue('Wheel' == self.driver.title)

    def test_selenium_start_with_bing(self):
        self.driver.get("http://www.bing.com")    
        inputElement = self.driver.find_element_by_name("q")
        inputElement.send_keys("cheese!")
        inputElement.submit()
        self.assertTrue('cheese' in self.driver.title)

def testsuite_open_game():
    suite = unittest.TestSuite()
    suite.addTest(TestBlackboxGame("test_open_game"))
    return suite

if __name__ == '__main__':
    runner = unittest.TextTestRunner(failfast=True)
    runner.run(testsuite_open_game())

在我的套件中,我只添加了测试用例“test_open_game”,但它同时运行了这两种情况,包括去 Bing 和搜索。我错过了什么?

【问题讨论】:

    标签: python unit-testing test-suite


    【解决方案1】:

    看看this的答案。

    似乎当您将一个 TestCase 添加到一个套件时,您正在添加它的所有测试。如果您只想运行一项测试,请拆分为两个测试用例。

    【讨论】:

    • 哦,所以class TestBlackboxGame 是一个TestCase?我的理解是 TestBlackboxGame 中的每个方法都是一个单独的 TestCase,除了设置和拆卸。
    • 事实证明代码正在做它应该做的事情。相反,我是个白痴,在 Pycharm 中运行它,它认识到它是单元测试并运行所有它,有效地通过我的 main.
    【解决方案2】:

    事实证明,代码正在做它应该做的事情。我正在使用 Pycharm,但没有注意到 Pycharm 将脚本作为单元测试运行。当 Pycharm 运行这个脚本时,它会绕过我的 main 并运行所有测试用例。

    【讨论】:

    • 所以。你是如何让它作为一个单独的测试运行的?
    • 您可以右键单击要运行的测试(函数),Pycharm 会为您提供仅运行该测试的选项。
    猜你喜欢
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多