负载测试中出现意外行为

本文关键字:意外 测试 负载 | 更新日期: 2023-09-27 18:29:17

我有一个负载测试,它只包含一个单元测试。

单元测试是C#中的一个函数,它使用C++/CLI包装器调用C++代码。

它毫无例外地运行良好。

这些项目是

1) 业务逻辑->BusinessLogic.lib

2) Wrapper(采用Business Logic.lib)->Wrapper.dll

3) C#项目(采用Wrapper.dll)

运行时的负载测试表明没有找到Wrapper.dll,而整个应用程序运行正常,甚至单元测试也没有报告任何此类错误

准确的错误是

测试方法TestProject1.testTest.getstateTest引发异常:System.IO.FileNotFoundException:未能加载文件或程序集"ManagedBL.dll"或其依赖项之一。找不到指定的模块

其中TestProject1是测试项目,testTest是测试类,getstateTest是单元测试

负载测试中出现意外行为

您的负载测试是测试框架(NUnit等人)的一部分还是应用程序的一部分?

如果负载测试在测试框架内,请检查Wrapper.dll是否已复制到测试框架输出dll并执行测试的"暂存"文件夹中。此外,请指定运行负载测试时的错误消息。

更新

好的,有几个因素可能会导致这个问题:

  1. Visual Studio不会将ManagedBL.dll复制到测试暂存目录中
  2. Visual Studio不会将BusinessLogic.lib复制到暂存目录中
  3. Visual Studio不会复制BusinessLogic.lib使用的某些其他库依赖项(即BusinessLogic.lib是否链接到任何其他本机库?)

从技术上讲,如果您已经将ManagedBL.dll添加到C#项目的引用中,VS应该复制它;但是,请检查它是否已正确复制(应该在TestResults文件夹中)。

要修复2和3,您可能需要执行以下操作:如何将本机库复制到VisualStudio2010中的单元测试暂存目录

最后,如果所有其他操作都失败了,我强烈建议您获取Process Monitor并在加载测试时运行它,并使用过滤器只显示与测试过程相关的信息。进程监视器应该能够在进程找不到文件/库时告诉您。