The question is not entirely clear. @Francesco B. already interpreted it as meaning "How can I specify a timeout?" and answered accordingly.
I understand you to be asking "How can I detect that my test has timed out?" Short answer - you can't detect it in the test itself. It can only be detected by a runner that is executing your test.
Longer answer...
You can examine the test context in your teardown to see what was the outcome of the test using TestContext.CurrentContext.Result.Outcome
. This is useful if your teardown needs to know the test has failed.
However, you will never see an outcome of "timed out" because...
- Your teardown is included in what gets timed by the Timeout attribute.
- Your teardown won't be called if the test method triggers timeout.
- Even if the first two points were not true, there is no "timed out" outcome. The test is marked as a failure and only the message indicates it timed out.
Of course, if I misunderstood the question and you just wanted to know how to specify a timeout, the other answer is what you want. :-)