Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ANT构建脚本进行Python单元测试_Python_Python 3.x_Ant_Python Unittest - Fatal编程技术网

通过ANT构建脚本进行Python单元测试

通过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

我在使用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, 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