복붙노트

[SCALA] 어떻게 다중 프로젝트 빌드에 대한 테스트의 병렬 실행을 해제하려면?

SCALA

어떻게 다중 프로젝트 빌드에 대한 테스트의 병렬 실행을 해제하려면?

나는 하위 프로젝트 및 부모 프로젝트의 테스트와 멀티 프로젝트 빌드가 있습니다. 부모 프로젝트는 자식 프로젝트에서 모든 테스트를 실행되도록 빌드가 집계됩니다.

I는 경유하므로 서브 프로젝트 부모 프로젝트 모두에서 테스트에는 병렬 실행이 없다는 것을를 구성한

parallelExecution in Test := false

그러나, 나는 여러 프로젝트를 통해 테스트 그 범위가 병렬로 실행 된하다는 잔소리 느낌이 듭니다. 하위 프로젝트 중 하나의 경우이 테스트 데이터베이스에 변이 상태가 동시에 테스트로 이어지는 것은 실패하기 때문에 문제이다.

방법에 대한 모든 아이디어를 프로젝트 사이에, 테스트의 병렬 실행의 스위치를 전역 적?

해결법

  1. ==============================

    1.내가 좋아하는, 당신이 범위 ThisBuild를 사용하여 프로젝트에서 설정을 적용 할 수 있다고 생각

    내가 좋아하는, 당신이 범위 ThisBuild를 사용하여 프로젝트에서 설정을 적용 할 수 있다고 생각

    parallelExecution in ThisBuild := false
    

    당신이 범위 테스트와 그 결합 할 수 있을지 모르겠어요,하지만 필요하지 않을 수도 있습니다.

  2. ==============================

    2.동시에 모든 프로젝트에 대한 시험을 수행, 사용의 수를 제한하려면 :

    동시에 모든 프로젝트에 대한 시험을 수행, 사용의 수를 제한하려면 :

    concurrentRestrictions in Global += Tags.limit(Tags.Test, 1)
    

    SBT 설명서를 참조하십시오

    참조 토론

  3. ==============================

    3.이것은 1.1.0에 나를 위해 일한 :

    이것은 1.1.0에 나를 위해 일한 :

    테스트 / parallelExecution : = 거짓

  4. ==============================

    4.테스트 할 때 순차적으로 (설치 방법 포함) 하위 테스트를 실행하는 방법 여기에 내 대답을 참조하십시오

    테스트 할 때 순차적으로 (설치 방법 포함) 하위 테스트를 실행하는 방법 여기에 내 대답을 참조하십시오

    병렬 실행을 방지하는 또 다른 방법이있다. 당신은 서로에 의존하는 다른 프로젝트의 테스트 작업을 할 수 있습니다 :

    test in Project2 := (test in Project2).dependsOn(test in Project1).value
    parallelExecution in Test in Project2 := false
    
  5. ==============================

    5.https://stackoverflow.com/a/27068019/1922026에 따라 또 다른 가능성은, 루트 프로젝트의 명령 별칭을 정의하는 것입니다 :

    https://stackoverflow.com/a/27068019/1922026에 따라 또 다른 가능성은, 루트 프로젝트의 명령 별칭을 정의하는 것입니다 :

    .settings(addCommandAlias("test", ";s1/test;s2/test;s3/test"): _*)
    

    여기서, S1, S2 및 S3의 서브 프로젝트이다. 당신이 루트 프로젝트 및 실행 "테스트"에있을 때 시험은 순차적으로 정의 된 순서대로 실행됩니다.

  6. from https://stackoverflow.com/questions/11899723/how-to-turn-off-parallel-execution-of-tests-for-multi-project-builds by cc-by-sa and MIT license