Python`unittest.main()`在Databricks中不起作用

时间:2019-11-25 22:27:31

标签: python python-unittest databricks azure-databricks

我正在尝试从Databricks community edition内部以交互方式运行Python unittest(尽管在我公司的Azure Databricks实例中也是如此),但是main()函数不起作用像往常一样。

这是代码:

import unittest
import sys

class TestStringMethods(unittest.TestCase):

    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOOD')

    def test_isupper(self):
        self.assertTrue('FOO'.isupper())
        self.assertFalse('Foo'.isupper())

    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])
        # check that s.split fails when the separator is not a string
        with self.assertRaises(TypeError):
            s.split(2)

if __name__ == '__main__':
    unittest.main(exit = False, verbosity = 2, argv = [sys.argv[0]])

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

相反,只是声称要运行零测试。 argv的论点来自试图遵循here的建议。

不使用argv参数运行将返回以下内容:

38061 (unittest.loader._FailedTest) ... ERROR
0 (unittest.loader._FailedTest) ... ERROR
50000 (unittest.loader._FailedTest) ... ERROR
2149 (unittest.loader._FailedTest) ... ERROR
0cb28c6d426949e982df5c6d0b79e272 (unittest.loader._FailedTest) ... ERROR
2 (unittest.loader._FailedTest) ... ERROR
4ac5791d8e3c580d7d20a3817c051ce567e3a023069ce8b9c68ff599b8a688ee (unittest.loader._FailedTest) ... ERROR

这似乎与调用sys.argv()相对应。

Out[9]: ['/local_disk0/tmp/1574719976370-0/PythonShell.py',
 '38061',
 '0',
 '50000',
 '2149',
 '0cb28c6d426949e982df5c6d0b79e272',
 '2.4.4',
 '4ac5791d8e3c580d7d20a3817c051ce567e3a023069ce8b9c68ff599b8a688ee']

接受的答案here不起作用。

但是,注释中的某些内容确实起作用(但没有使用main()函数)。

suite = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
unittest.TextTestRunner(verbosity = 2).run(suite) 

任何建议将不胜感激。

0 个答案:

没有答案