2017-12-05 7 views
1

@testset 내에 실패한 @test의 추가 세부 정보 (함수, 반복 번호 등의 입력 변수 인쇄)를 조사하거나 출력하는 가장 좋은 방법은 무엇입니까? try-catch-block을 감싸려고했습니다. 그러나 발사하지 않는 것 같습니다.Julia의 @testset에서 예외 처리

using Base.Test 
rng = MersenneTwister(3231); 

# define function that works different than expected 
function compare(a,b) 
    if a == 3 && b == 3 
     return false 
    else 
     return a == b 
    end 
end 

# test function in a test set 
@testset "Test Compare Function" begin 
    for iii = 1:10 
     number = rand(rng,1:10) 
     try 
      @test compare(number,number) == true 
     catch 
      @show(number) 
     end 
    end 
end 

가 대단히 감사합니다 :

여기

이 만들어 낸 예이다!

답변

1

인쇄 후에 테스트해야합니다.

@testset "Test Compare Function" begin 
    for iii = 1:10 
     number = rand(rng,1:10) 
     @test begin 
      res = compare(number,number) == true 
      if !res 
       @show number 
       flush(STDOUT) 
      end 
      res 
     end 
    end 
end