负载测试中出现意外行为
本文关键字:意外 测试 负载 | 更新日期: 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并执行测试的"暂存"文件夹中。此外,请指定运行负载测试时的错误消息。
更新
好的,有几个因素可能会导致这个问题:
- Visual Studio不会将
ManagedBL.dll
复制到测试暂存目录中 - Visual Studio不会将
BusinessLogic.lib
复制到暂存目录中 - Visual Studio不会复制
BusinessLogic.lib
使用的某些其他库依赖项(即BusinessLogic.lib
是否链接到任何其他本机库?)
从技术上讲,如果您已经将ManagedBL.dll
添加到C#项目的引用中,VS应该复制它;但是,请检查它是否已正确复制(应该在TestResults文件夹中)。
要修复2和3,您可能需要执行以下操作:如何将本机库复制到VisualStudio2010中的单元测试暂存目录
最后,如果所有其他操作都失败了,我强烈建议您获取Process Monitor并在加载测试时运行它,并使用过滤器只显示与测试过程相关的信息。进程监视器应该能够在进程找不到文件/库时告诉您。