현재 Python2와 호환되는 Python2 용 모듈을 작성하려고합니다. setuptools : 원래 디렉토리 대신 build dir에 대한 테스트 실행
나는 모든 코드가 자동으로 setup.py으로2to3
로 변환하고 추가 할 수 있음을 확인하여 시작 :
use_2to3 = True,
지금까지, 모든 것이 잘 작동한다.
변환 된 파일을 테스트하고 싶습니다.
테스트는 2to3
없이 실행될 수 있도록 작성되었습니다. 내 폴더 구조는 다음과 같습니다 내 setup.py으로
# ls /path/to/mymodule
setup.py
mymodule/
tests/
build/
, 나는
test_suite = "tests",
추가는 지금은 자동으로 코드를 변환 내 테스트하기 위해
rm -rf build/
python3 setup.py build
python3 setup.py test
을 실행합니다. 테스트가 여전히
mymodule
디렉토리에 실행되기 때문에 은 그러나 실패 : 내
build/
에서
File "/path/to/mymodule/mymodule/main.py", line 35
logger.info(u'Scanning {path}'.format(path=self.path))
^
SyntaxError: invalid syntax
[This Syntax error is in MODULE code, not in TEST code.]
[I expect the path to be: /path/to/mymodule/build/lib/mymodule/main.py]
가 제대로있는 파일을 변환. distribute가 올바르게 변환하는 경우 변환 된 파일에 대해 테스트가 실행되지 않는 이유는 무엇입니까?
나는 뭔가를 놓친가요? 누락 된 매개 변수에 대한 setuptools/distribute의 설명서를 이미 확인했습니다. 불필요한 공간을 차지하는 테스트 용 리소스 파일이 여러 개 있기 때문에 테스트를 모듈에 포함하고 싶지 않습니다.
=> python3에서 실행할 때 다른 폴더에 대한 테스트를 실행하도록 setup.py를 구성 할 수 있습니까?
안녕하세요, "하지만 테스트가 여전히 mymodule 디렉토리에서 실행되기 때문에 실패합니다." 이것은 테스트 코드가 아니라 모듈 코드입니다. 2to3 변환 코드는 괜찮지 만 테스트는이 코드로 실행되지 않습니다. – Nippey
어쨌든, 독극물에 대해 살펴 보겠습니다. 첫 번째 접근 방식은 원래 저자를 존중하기 위해 가능한 한 최소한으로 통합 된 변경 사항을 적용하는 것이 었습니다.) – Nippey
@Nippey : '2to3'은 권장 접근 방식이 아닙니다. Python 2.x 프로젝트는 다음을 적용하여 포팅해야합니다. 2.x 및 3.x와 호환되는 코드베이스. –