通过ANT构建脚本进行Python单元测试
我在使用discovery运行Python测试时遇到问题 当通过“python3-m unittest discover”从终端运行时,或者从BBEdit内部运行时,它可以工作,但不能从我的ANT构建脚本运行 错误是:通过ANT构建脚本进行Python单元测试,python,python-3.x,ant,python-unittest,Python,Python 3.x,Ant,Python Unittest,我在使用discovery运行Python测试时遇到问题 当通过“python3-m unittest discover”从终端运行时,或者从BBEdit内部运行时,它可以工作,但不能从我的ANT构建脚本运行 错误是: File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/unittest/loader.py", line 346, i
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/unittest/loader.py", line 346, in discover
raise ImportError('Start directory is not importable: %r' % start_dir)
ImportError: Start directory is not importable: ' /Users/<username>/Documents/Work/Python/Libraries/Utils/build/test/bin'
测试的ANT目标:
<target name="-test-python"
if="has.python.test.source"
description="Run the Python tests.">
<exec executable="python3"
dir="${build.test.dir}/bin"
osfamily="unix"
failonerror="true">
<arg value="-m" />
<arg value="unittest" />
<arg value="discover" />
<arg value="-v" />
<arg value="-s ${build.test.dir}/bin" />
<arg value="-p Test*.py" />
<arg value="-t ${dist.bin.dir}" />
</exec>
<echo level="info" message="* Python test/s complete. *" />
</target>
从终端运行:
Craig-iMac:bin <username>$ python3 -m unittest discover -v -s /Users/<username>/Documents/Work/Python/Libraries/Utils/build/test/bin -p Test*.py
testMe (TestSomething.TestSomething) ...
in TestSomething setUp()
CWD: /Users/<username>/Documents/Work/Python/Libraries/Utils/build/test/bin
in TestSomething testMe()
in TestSomething tearDown()
ok
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
Craig iMac:bin$python3-m unittest discover-v-s/Users//Documents/Work/Python/Libraries/Utils/build/test/bin-p test*.py
testMe(TestSomething.TestSomething)。。。
在TestSomething setUp()中
CWD:/Users//Documents/Work/Python/Libraries/Utils/build/test/bin
在TestSomething testMe()中
在TestSomething tearDown()中
好啊
----------------------------------------------------------------------
在0.000秒内运行了1次测试
好啊
这是一个ANT问题(可能“exec”不是正确的命令)还是我缺少了与Python的unittest有关的内容?经过多次搜索后,我发现ANT存在一个问题,其中目录与
'<arg value="-s ${build.test.dir}/bin" />'
这使isdir()测试失败,导致原始帖子中描述的问题
Craig-iMac:bin <username>$ python3 -m unittest discover -v -s /Users/<username>/Documents/Work/Python/Libraries/Utils/build/test/bin -p Test*.py
testMe (TestSomething.TestSomething) ...
in TestSomething setUp()
CWD: /Users/<username>/Documents/Work/Python/Libraries/Utils/build/test/bin
in TestSomething testMe()
in TestSomething tearDown()
ok
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
'<arg value="-s ${build.test.dir}/bin" />'
/Users/me/Documents/Work/Python/Libraries/Utils/build/test/bin/ /Users/me/Documents/Work/Python/Libraries/Utils/build/test/bin