scons를 통해 디렉토리 목록을 사용하여 nosetests를 호출하고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?noscetests를 scons 작업으로 호출하십시오.
1
A
답변
3
: 디렉토리 목록에 대해서는
는, 당신은이 같은 일부 파이썬 프로그램을 사용할 수 있습니다 Command() + 파이썬 서브 프로세스 모듈을 사용합니다. Command 만 사용하는 경우 응용 프로그램의 리턴 코드를 얻을 수 없습니다. 예를 들어
:
if 'test' in COMMAND_LINE_TARGETS:
runTestsCmd = env.Command('runTests', None, Action(runTests, "Running tests"))
AlwaysBuild(runTestsCmd)
Alias('test', runTestsCmd)
runTests 기능 예 :
def runTests(target = None, source = None, env = None) :
# fill args
retCode = subprocess.call(args, env = env['ENV'], cwd = cwd, shell = True)
Exit(retCode)
는 또한, 당신은 runTestsCmd에 대한 추가 종속성을 설정할 수 있습니다.
Depends(runTestsCmd, [appAndLibsToBuild])
1
나는 코 프레임 워크를 잘 모릅니다 만, SCons는 외부 응용 프로그램을 실행하는 방법은 두 가지가 있습니다 (파이썬 함께 할 수있는 다른 방법이 있습니다,하지만 필요가 사람들을 언급하지 않으려면) 다음과 같이
난 당신이 ONL하는 명령() 옵션을 사용하고자하는 것입니다 생각관련된 종속성 중 하나가 변경되면 단위 테스트를 시작합니다. (당신이 테스트를 호출하는 경우) 외부 응용 프로그램의 리턴 코드를 분석해야하는 경우, 당신이 필요로하는
dirs = ['dir1', 'dir2', 'dir3']
for dir in dirs:
cmd = 'theScriptToExecute $SOURCE $TARGET'
env.Command(target = 'whatever', source = dir, action = cmd)