当前位置: 首页 > 知识库问答 >
问题:

从unittest运行单个测试。通过命令行测试用例-使用ddt

淳于枫
2023-03-14

类似于这个问题。然而,当使用ddt时,公认的解决方案不适用于我。

例如:

def numbers_to_words(num):
    if(num == 1): return 'One'
    if(num == 2): return 'Two'
    if(num == 3): return 'Three'
    raise Error

@ddt
class TestNumbersToWords(unittest.TestCase):
    @unpack
    @data((1, 'One'), (2, 'Two'), (3, 'Three'))
    def test_should_return_correct_word(self, input, expected):
        self.assertEqual(expected, numbers_to_words(input))

如果我在终端上运行这个,它就不起作用了

python3 testSuite.py TestNumbersToWords.test_should_return_correct_word

共有1个答案

黄查猛
2023-03-14

这是因为ddt更改测试名称的方式。如果您以详细模式运行测试,您将看到以下内容:

$ python testSuite.py -v
test_should_return_correct_word_1__1___One__ (__main__.TestNumbersToWords) ... ok
test_should_return_correct_word_2__2___Two__ (__main__.TestNumbersToWords) ... ok
test_should_return_correct_word_3__3___Three__ (__main__.TestNumbersToWords) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.000s

OK

如您所见,test\u should\u return\u correct\u word在这里不存在。但是,您可以提供正在运行的方法的真实名称,并且它可以工作:

$ python test_a.py TestNumbersToWords.test_should_return_correct_word_1__1___One__
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

但是您将无法运行所有匹配模式的测试,例如TestNumbersToWords.test_should_return_correct_word*

 类似资料:
  • 问题内容: 在我们的团队中,我们定义了大多数测试用例,如下所示: 一门“框架”课: 还有很多测试用例,例如testMyCase.py: 当我编写新的测试代码并希望经常运行它并节省时间时,我要做的是在所有其他测试之前放置“ __”。但这很麻烦,使我从正在编写的代码中分散了注意力,并且由此产生的提交噪音实在令人讨厌。 因此,例如,当对进行更改时,我希望能够做到这一点: 并运行 只 我该如何实现? 我尝

  • 在我们的团队中,我们这样定义大多数测试用例: 一个“框架”类: 我试图重写部分,但是由于我是Python新手,我感到迷路了,除了方法之外,我一直在研究其他的东西。

  • ./gradlew test 执行gradle测试任务后所有的测试用例都会被运行,然后会产出测试报告. 测试报告存放在址: app\/build\/reports\/debug\/index.html 通过gradle工具栏执行的效果同命令行.

  • 问题内容: 我想从命令行运行JUnit测试用例。我怎样才能做到这一点? 问题答案: 对于JUnit 5.x,它是: 查找在简要https://stackoverflow.com/a/52373592/1431016的全部细节https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher 对于JUnit

  • 问题内容: 然后,我用Firefox扩展“ Selenium IDE”保存了一个测试用例。 现在,我想使用命令行来运行此导出的html文件。 我尝试遵循这个方法,从命令行在一个特定的测试用例中启动selenium离子,)但这种方法不起作用。 请帮我。 问题答案: 您将需要Selenium RC,可以从以下网站获得: http : //seleniumhq.org/download/ Java 1.

  • 问题内容: 我希望能够从命令行运行Junit测试,但是当我运行此命令时 我回来的就是 它是否与Android项目有关?我之前已经运行过该命令,并且没有太多问题。 问题答案: 我只是设法从命令行运行JUnit测试,但是使用adb shell。 命令是 更多细节在这里。