Msbuild 在使用cc.net执行测试时,进程超时而不显示任何错误

Msbuild 在使用cc.net执行测试时,进程超时而不显示任何错误,msbuild,nunit,cruisecontrol.net,Msbuild,Nunit,Cruisecontrol.net,nunit测试在通过cc.net运行时失败,表示进程超时。进程已被终止 当通过nUNit或VS时,一切都很好 此外,cc.net将显示以前生成的结果,即使该生成是干净的 任何帮助。默认超时为600秒。如果您的测试开始超出此范围,则构建将失败,并且没有任何指示。您可能需要为cc.net nunit任务设置超时时间如果您看到的是以前生成的结果,可能是因为您没有删除以前生成的结果 例如,我的NUnit测试结果将写入名为{foo}-results.xml的文件: <publishers>

nunit测试在通过cc.net运行时失败,表示进程超时。进程已被终止 当通过nUNit或VS时,一切都很好

此外,cc.net将显示以前生成的结果,即使该生成是干净的


任何帮助。默认超时为600秒。如果您的测试开始超出此范围,则构建将失败,并且没有任何指示。您可能需要为cc.net nunit任务设置超时时间

如果您看到的是以前生成的结果,可能是因为您没有删除以前生成的结果

例如,我的NUnit测试结果将写入名为{foo}-results.xml的文件:

<publishers>
    <merge>
        <files>
            <file>bin\debug\*-results.xml</file>
        </files>
    </merge>
</publishers>

bin\debug\*-results.xml

在我的任务中,我在构建文件中有一个步骤,删除整个“bin\debug”目录,以便我的结果始终是当前结果。

一种可能是您有权限问题。CruiseControl可能是在服务帐户下运行的,并且与您的用户帐户(我假设您使用该帐户手动运行测试)具有不同的权限。请尝试以服务帐户的身份登录计算机,然后查看您是否可以通过VS或NUnit运行单元测试。

如果测试具有断言,则会发生这种情况,例如Debug.Assert(这里的东西)。当我在CC.Net中遇到这种情况时,CC.Net构建会弹出一个断言消息框。由于没有人关闭生成服务器上的消息框,NUnit测试将超时。

这是配置文件中我的NUnit任务块的副本,但它们仍在毫无原因地失败。我看到NUnit无法在需要在单线程单元(STA)中运行的测试上运行。如果是这种情况,-nothreaded参数需要传递到nunit console.exe…是的,我已经在VS project的app.config文件中将状态设置为STA,您想让我在ccnet config文件中设置它吗?我唯一能够使其工作的方法是将nunit任务更改为调用nunit-console-no-thread.bat-您创建的一个bat文件,它调用nunit-console.exe-nothreads%*