001package org.junit.runners.model; 002 003import java.util.concurrent.TimeUnit; 004 005/** 006 * Exception thrown when a test fails on timeout. 007 * 008 * @since 4.12 009 * 010 */ 011public class TestTimedOutException extends Exception { 012 013 private static final long serialVersionUID = 31935685163547539L; 014 015 private final TimeUnit timeUnit; 016 private final long timeout; 017 018 /** 019 * Creates exception with a standard message "test timed out after [timeout] [timeUnit]" 020 * 021 * @param timeout the amount of time passed before the test was interrupted 022 * @param timeUnit the time unit for the timeout value 023 */ 024 public TestTimedOutException(long timeout, TimeUnit timeUnit) { 025 super(String.format("test timed out after %d %s", 026 timeout, timeUnit.name().toLowerCase())); 027 this.timeUnit = timeUnit; 028 this.timeout = timeout; 029 } 030 031 /** 032 * Gets the time passed before the test was interrupted 033 */ 034 public long getTimeout() { 035 return timeout; 036 } 037 038 /** 039 * Gets the time unit for the timeout value 040 */ 041 public TimeUnit getTimeUnit() { 042 return timeUnit; 043 } 044}