1

我试图执行一个示例 PNunit 测试,但它失败并出现以下错误

The test xxx couldn't be found in the assembly xxx.dll

我遵循了 Pnunit 文档,但没有帮助。

项目参考

这是测试用例

using NUnit.Framework;

namespace TestLibraries
{
    [TestFixture]
    public class PuniTest
    {
        [Test]
        public void EqualTo19()
        {
            Assert.AreEqual(19, (15 + 4));
        }
    }
}

和 test.conf 文件

<TestGroup>
  <Variables>
    <Variable name="$agent_host" value="localhost" />
  </Variables>

  <ParallelTests>
      <ParallelTest>
        <Name>Testing</Name>
        <Tests>
          <TestConf>
            <Name>Testing</Name>
            <Assembly>pnunit35.dll</Assembly>
            <TestToRun>TestLibraries.PuniTest.EqualTo19</TestToRun>
            <Machine>$agent_host:8080</Machine>
          </TestConf>
        </Tests>
      </ParallelTest>
    </ParallelTests>

</TestGroup>

我已经编译了代码,将“pnunit35.dll”和“test.conf”文件复制到“ NUnit.Runners.Net4.2.6.4\tools ”文件夹以运行测试

并运行以下命令(在批处理文件中)以启动代理并从 Nunit 测试运行器文件夹运行脚本

start pnunit-agent 8080 .
pnunit-launcher test.conf

在运行批处理脚本时,测试失败并出现以下错误

The test TestLibraries.PuniTest.EqualTo19 couldn't be found in the assembly pnunit35.dll

有人可以调查一下吗?提前谢谢

4

3 回答 3

0

您可能存在处理器架构不匹配的问题。如果您的项目是 64 位,请转到测试 -> 测试设置 -> 默认处理器架构 -> x64。

于 2017-02-20T12:42:05.230 回答
0

感谢大家,

最后我找到了问题的根本原因,它是与我在项目中使用的 NUnit-3.6.0 和 Nunit.Runner-4.2.6.4 不兼容的 pNunit 版本。

当我搜索这个问题时,我发现 pNunit-2.6.4 与最新的 Nunit-3.6.0 不兼容。所以,我已将 Nunit 和 NUnit.Runners 更改为 2.6.4。然后测试工作没有任何问题。

更新: 使用 .Net Framework 3.5

更新 2: [. Net Framework 4.5 ] 如果您正在使用 .Net Framework 4 及更高版本,请在兼容模式下启动 PNunit-agent。

在文本编辑器中编辑“pnunit-agent.exe.config”文件并在“配置”中添加以下代码

<startup>
    <supportedRuntime version="v4.0.30319" />
</startup>

关闭 pnunit-agent 并重新运行将解决问题

于 2017-02-21T12:28:20.587 回答
0

您可能会错过 Visual Studio 中的NUnit 测试适配器

于 2017-02-20T12:04:47.303 回答