OUnit으로 테스트 시간 제한을 설정하는 방법은 무엇입니까?

bfontaine

테스트 된 함수가 올바르게 구현되지 않은 경우 무기한 실행될 수있는 무한 게으른 구조에 대한 몇 가지 테스트가 있지만 OUnit 문서에서 테스트에 시간 제한을 설정하는 방법을 찾을 수 없습니다.

Rgrinberg

나는 oUnit이이 기능을 제공한다고 생각하지 않습니다. 나는 이것을 한동안 수행해야했던 것을 기억하며 이것이 내가 생각해 낸 빠른 해킹입니다.

let race seconds ~f =
  let ch = Event.new_channel () in
  let timeout = Thread.create (fun () ->
      Thread.delay seconds;
      `Time_out |> Event.send ch |> Event.sync
    ) () in
  let tf = Thread.create (fun () ->
      `Result (f ()) |> Event.send ch |> Event.sync) () in
  let res = ch |> Event.receive |> Event.sync in
  try
    Thread.kill timeout;
    Thread.kill tf;
    res
  with _ -> res

let () =
  let big_sum () =
    let arr = Array.init 1_000_000 (fun x -> x) in
    Array.fold_left (+) 0 arr in
  match race 0.0001 ~f:big_sum with
  | `Time_out -> print_endline "time to upgrade";
  | `Result x -> Printf.printf "sum is: %d\n" x

이것은 내 사용 사례에 대해 충분히 잘 작동했지만 할당이나 호출이 수동으로 수행되지 않으면 race예상대로 작동하지 않기 때문에 이것을 사용하는 것이 좋습니다 .~fThread.yield

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

인턴으로 기능 테스트의 제한 시간을 설정하는 방법은 무엇입니까?

분류에서Dev

행을 BigQuery로 스트리밍 할 때 시간 제한을 지정하는 방법은 무엇입니까?

분류에서Dev

시간대로 시간을 설정하는 방법은 무엇입니까?

분류에서Dev

Jquery / Javascript : 새로 고침시 시간 제한 재설정을 방지하는 방법은 무엇입니까?

분류에서Dev

Sitecore에서 로그 삭제 시간 제한을 설정하는 방법은 무엇입니까?

분류에서Dev

웹 사이트에 대한 JSON API 시간 제한을 설정하는 방법은 무엇입니까?

분류에서Dev

텍스트의 가시성을 컨테이너로 제한하는 방법은 무엇입니까?

분류에서Dev

javascript swagger 생성 클라이언트에서 시간 제한을 설정하는 방법은 무엇입니까?

분류에서Dev

Google 스프레드 시트에서 기간을 시간으로 변환하는 방법은 무엇입니까?

분류에서Dev

시스템 글꼴을 noto로 설정하는 방법은 무엇입니까?

분류에서Dev

2 시간마다 자동으로 DB를 복제하는 스크립트를 설정하는 방법은 무엇입니까?

분류에서Dev

입 / 출력 파일을 사용하여 .exe 파일을 시작하고 일괄 적으로 시간 제한을 설정하는 방법은 무엇입니까?

분류에서Dev

Jest로 specs 테스트 폴더에서 테스트 파일을 무시하는 방법은 무엇입니까?

분류에서Dev

API 프로젝트의 시작 클래스에서 통합 테스트 프로젝트의 설정을 사용하는 방법은 무엇입니까?

분류에서Dev

비활성 시간 후 해당 상태가 '꺼짐'으로 간주 될 때 redis bitset에서 비트를 설정 해제하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 그룹으로 시간을 0으로 설정하는 방법은 무엇입니까?

분류에서Dev

메시지 버스 메시지 유형을 JSON으로 설정하는 방법은 무엇입니까?

분류에서Dev

방문 시간을 Qt의 방법으로 제한하는 방법은 무엇입니까?

분류에서Dev

시간 선택기 표시 값을 0으로 기본 설정하는 방법은 무엇입니까?

분류에서Dev

Java 프로세스의 실제 실행 시간을 측정하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 설정된 간격으로 스타일을 동적으로 수정하는 방법은 무엇입니까?

분류에서Dev

Angular Serve, 테스트 및 Lint를 실시간으로 동시에 실행하는 방법은 무엇입니까?

분류에서Dev

C # Azure : 로컬에서 실행할 때 Azure 제한 시간을 설정하고 정책을 다시 시도하는 방법은 무엇입니까?

분류에서Dev

간단한 HTML 양식으로 InfluxDB에 메트릭을 게시하는 방법은 무엇입니까?

분류에서Dev

패키지로 제한된 테스트 작업을 정의하는 방법은 무엇입니까?

분류에서Dev

Jest에서 테스트 간 모의 호출 녹음을 재설정하는 방법은 무엇입니까?

분류에서Dev

Jenkins 용 cppUnit xml 보고서에서 테스트 기간을 설정하는 방법은 무엇입니까?

분류에서Dev

시간과 날짜를 자동으로 업데이트하도록 데비안을 설정하는 방법은 무엇입니까?

분류에서Dev

특정 프로세스에 대한 메모리 제한을 설정하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    인턴으로 기능 테스트의 제한 시간을 설정하는 방법은 무엇입니까?

  2. 2

    행을 BigQuery로 스트리밍 할 때 시간 제한을 지정하는 방법은 무엇입니까?

  3. 3

    시간대로 시간을 설정하는 방법은 무엇입니까?

  4. 4

    Jquery / Javascript : 새로 고침시 시간 제한 재설정을 방지하는 방법은 무엇입니까?

  5. 5

    Sitecore에서 로그 삭제 시간 제한을 설정하는 방법은 무엇입니까?

  6. 6

    웹 사이트에 대한 JSON API 시간 제한을 설정하는 방법은 무엇입니까?

  7. 7

    텍스트의 가시성을 컨테이너로 제한하는 방법은 무엇입니까?

  8. 8

    javascript swagger 생성 클라이언트에서 시간 제한을 설정하는 방법은 무엇입니까?

  9. 9

    Google 스프레드 시트에서 기간을 시간으로 변환하는 방법은 무엇입니까?

  10. 10

    시스템 글꼴을 noto로 설정하는 방법은 무엇입니까?

  11. 11

    2 시간마다 자동으로 DB를 복제하는 스크립트를 설정하는 방법은 무엇입니까?

  12. 12

    입 / 출력 파일을 사용하여 .exe 파일을 시작하고 일괄 적으로 시간 제한을 설정하는 방법은 무엇입니까?

  13. 13

    Jest로 specs 테스트 폴더에서 테스트 파일을 무시하는 방법은 무엇입니까?

  14. 14

    API 프로젝트의 시작 클래스에서 통합 테스트 프로젝트의 설정을 사용하는 방법은 무엇입니까?

  15. 15

    비활성 시간 후 해당 상태가 '꺼짐'으로 간주 될 때 redis bitset에서 비트를 설정 해제하는 방법은 무엇입니까?

  16. 16

    두 개의 다른 그룹으로 시간을 0으로 설정하는 방법은 무엇입니까?

  17. 17

    메시지 버스 메시지 유형을 JSON으로 설정하는 방법은 무엇입니까?

  18. 18

    방문 시간을 Qt의 방법으로 제한하는 방법은 무엇입니까?

  19. 19

    시간 선택기 표시 값을 0으로 기본 설정하는 방법은 무엇입니까?

  20. 20

    Java 프로세스의 실제 실행 시간을 측정하는 방법은 무엇입니까?

  21. 21

    자바 스크립트를 사용하여 설정된 간격으로 스타일을 동적으로 수정하는 방법은 무엇입니까?

  22. 22

    Angular Serve, 테스트 및 Lint를 실시간으로 동시에 실행하는 방법은 무엇입니까?

  23. 23

    C # Azure : 로컬에서 실행할 때 Azure 제한 시간을 설정하고 정책을 다시 시도하는 방법은 무엇입니까?

  24. 24

    간단한 HTML 양식으로 InfluxDB에 메트릭을 게시하는 방법은 무엇입니까?

  25. 25

    패키지로 제한된 테스트 작업을 정의하는 방법은 무엇입니까?

  26. 26

    Jest에서 테스트 간 모의 호출 녹음을 재설정하는 방법은 무엇입니까?

  27. 27

    Jenkins 용 cppUnit xml 보고서에서 테스트 기간을 설정하는 방법은 무엇입니까?

  28. 28

    시간과 날짜를 자동으로 업데이트하도록 데비안을 설정하는 방법은 무엇입니까?

  29. 29

    특정 프로세스에 대한 메모리 제한을 설정하는 방법은 무엇입니까?

뜨겁다태그

보관