[ 
https://issues.apache.org/jira/browse/HADOOP-9330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13585240#comment-13585240
 ] 

Luke Lu commented on HADOOP-9330:
---------------------------------

bq. setting a time out in the runtime can be achievable through 
surefire.timeout property, can it not?

surefire.timeout is a test process timeout or per test class if fork mode is 
always, not _per_ _test_, which is the rationale for HADOOP-9112 in the first 
place.

bq. we can use the @RunWith attribute in a test class to define a custom test 
runner for it.

There is no need to use a custom test runner. org.junit.rules.Timeout is what 
you want. We can create a common base test class like this.
{code}
public class TestBase {
  @Rule public Timeout defaultTimeout = new Timeout(Integer.parseInt(
      System.getProperty("test.default.timeout", 100000)));
  ...
}
{code}
                
> Add custom JUnit4 test runner with configurable timeout
> -------------------------------------------------------
>
>                 Key: HADOOP-9330
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9330
>             Project: Hadoop Common
>          Issue Type: Test
>          Components: test
>    Affects Versions: 3.0.0
>            Reporter: Steve Loughran
>
> HADOOP-9112 has added a requirement for all new test methods to declare a 
> timeout, so that jenkins/maven builds will have better information on a 
> timeout.
> Hard coding timeouts into tests is dangerous as it will generate spurious 
> failures on slower machines/networks and when debugging a test.
> I propose providing a custom JUnit4 test runner that test cases can declare 
> as their test runner; this can provide timeouts specified at run-time, rather 
> than in-source.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to