我试图通过Python Invoke library运行一些单元测试,但是我对Python的了解不足使我无法这样做。
这是我的示例代码:
my_tests.py
Predicate<URL> p = u -> u.getFile().isEmpty();
tasks.py
? super
这就是我得到的:
? extends
测试从my_tests.py和tasks.py运行良好,但是当我使用invoke stuff break时。 我怎样才能使它工作或我应该在哪里看下一个?
答案 0 :(得分:1)
您遇到的问题是unittest.main()
使用调用程序的命令行参数来确定要运行的测试。由于您的程序正在以inv tests
执行,因此程序的第一个参数是tests
,因此unittest
正在尝试运行不存在的模块名tests
的测试
你可以通过从system arguments list弹出最后一个参数(tests
)来解决这个问题:
import sys
from invoke import task
@task
def tests(ctx):
# Pop "tests" off the end of the system arguments
sys.argv.pop()
main()
@task
def other_task(ctx):
print("This is fine")
def main():
import my_tests
import unittest
unittest.main(module='my_tests')
if __name__ == '__main__':
main()