自定义 Python 测试套件未过滤且 运行 所有案例

Custom Python test suite not filtering and running all cases

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

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 和搜索的两种情况。我错过了什么?

看看 this 答案。

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

事实证明,代码正在执行它应该执行的操作。我正在使用 Pycharm 并且没有注意到 Pycharm 正在 运行 将脚本作为单元测试。当 Pycharm 运行 这个脚本绕过我的主要和 运行 所有测试用例时,不管。