none
Unit Test设置Timeout为60秒,但是测试结果显示失败原因是timeout,运行时间是28秒,为什么? RRS feed

  • 问题

  • Unit Test是这样写的:

    [TestMethod] [Timeout(60000)] publicvoid MyTest()

    {...}

     报告的错误是:

    Test 'MyTest' exceeded execution timeout period.

    Trx文件里显示这个Case的运行时间是28.3秒。可否解答一下?


    -Thanks -Shuhang Zhao

    2014年11月14日 9:47

答案

  • 你用的哪个VS版本?你说你是在trx文件里面看到的,那你是用命令行运行的吗?VS2013应该只有通过命令行可以得到trx文件,所以你可以试着用VS IDE运行,然后真正的测试结果应该是在Test Explorer 下。

    如果你是用的老的VS版本,比如VS2010,你可以在testsettings文件里面设置timeout值,然后enable testsettings文件,运行你的test,结果如何?不确定是不是VS IDE的问题,也许你可以在别的机器上试试。如果你用的是10版本,请安装VS2010 sp1。

    还有清理方法貌似也会影响timeout:

    http://msdn.microsoft.com/zh-CN/library/ms243175.aspx#timeoutalltests

    希望能帮到你!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月17日 9:06
    版主

全部回复

  • 补充一下,这个Case不是每一次都超时,小概率的出现超时的问题。其它case也有类似的问题。Case之前有TestInitialize方法。真的很费解。

    -Thanks -Shuhang Zhao

    2014年11月14日 9:52
  • 你用的哪个VS版本?你说你是在trx文件里面看到的,那你是用命令行运行的吗?VS2013应该只有通过命令行可以得到trx文件,所以你可以试着用VS IDE运行,然后真正的测试结果应该是在Test Explorer 下。

    如果你是用的老的VS版本,比如VS2010,你可以在testsettings文件里面设置timeout值,然后enable testsettings文件,运行你的test,结果如何?不确定是不是VS IDE的问题,也许你可以在别的机器上试试。如果你用的是10版本,请安装VS2010 sp1。

    还有清理方法貌似也会影响timeout:

    http://msdn.microsoft.com/zh-CN/library/ms243175.aspx#timeoutalltests

    希望能帮到你!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月17日 9:06
    版主
  • 对,你说的非常正确,我在你给的链接里找到了答案。每次随机失败的Case的确是第一个被运行的,由于Class初始化占用了过多的时间造成的。不过这真的是个很不合理的设计。

    -Thanks -Shuhang Zhao

    2014年11月18日 2:43