2012-05-30 1 views

답변

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는 외부 응용 프로그램을 실행하는 방법은 두 가지가 있습니다 (파이썬 함께 할 수있는 다른 방법이 있습니다,하지만 필요가 사람들을 언급하지 않으려면) 다음과 같이

  • Execute (참조) - SConscript 파일
  • Command() 분석하는 동안 항상 실행 - 종속성에 따라 대상과 같은 행위를 만 실행
난 당신이 ONL하는 명령() 옵션을 사용하고자하는 것입니다 생각

관련된 종속성 중 하나가 변경되면 단위 테스트를 시작합니다. (당신이 테스트를 호출하는 경우) 외부 응용 프로그램의 리턴 코드를 분석해야하는 경우, 당신이 필요로하는

dirs = ['dir1', 'dir2', 'dir3'] 
for dir in dirs: 
    cmd = 'theScriptToExecute $SOURCE $TARGET' 
    env.Command(target = 'whatever', source = dir, action = cmd)