我们正在尝试为Azure应用服务中托管的应用程序执行手动测试时生成代码覆盖率。
我在portal.azure.com上有一个跟踪帐户,用户'特权。
尝试以下选项: A.在Azure控制台和本地使用VS工具 B.在Azure控制台中使用OpenCover
使用VS工具和Opencover的上述选项都已在localhost(IIS服务器)中使用,以便在runnign手动测试中成功生成代码覆盖率。
一个。使用Azure中的VS工具进行代码覆盖的步骤: 1. cd D:\ Program Files(x86)\ Microsoft Visual Studio 15.0 \ Team Tools \ Performance Tools 2. vsinstr / coverage D:\ home \ site \ wwwroot \ bin \ abc.dll 3. vsperfcmd / start:coverage /output:D:\home\LogFiles\Testing123.coverage 4. vsperfcmd -shutdown
Issue1: The generated code coverage file has error: Empty results generated: No binaries were instrumented. Make sure the tests ran, required binaries were loaded, had matching symbol files, and were not excluded through custom settings. For more information see https://go.microsoft.com/fwlink/?LinkID=253731
However I'm able to generate code coverage on the same application which has been hosted in my local IIS server. The same 4 steps mentioned above is working. The issue is that the instrumented dll doesn't log the transactions performed on the hosted application.
Reference: https://gurunadhduvvuru.wordpress.com/2014/08/01/generating-functional-testing-code-coverage/
PS: We have tried starting the coverage process before and after publish the application.
B中。使用Azure中的Open Cover进行代码覆盖的步骤 1. OpenCover.Console.exe -target:C:\ Windows \ System32 \ inetsrv \ w3wp.exe -targetargs:" -debug -s 1" -targetdir:C:\ inetpub \ wwwroot \ bin \ -filter:+ [] -register:user -output:C:\ Users \ coverage2.xml
Issue 2: Access denied is displayed when the application is not running.
Issue 3: The generated coverage file is empty and doesn't has the same error mentioned in Issue 1, on executing the opencover command when the application is running.
Reference: https://automationrhapsody.com/code-coverage-manual-automated-tests-opencover-net-applications/
Any help on the reason for the generated coverage file to be empty ? or any reference to suffice my requirement would be much appreciated?
答案 0 :(得分:1)
似乎它是Azure WebApp Sandbox的限制,所有Azure Web Apps都在称为沙箱的安全环境中运行。每个应用程序都在自己的沙箱中运行,将其执行与同一台机器上的其他实例隔离开来,并提供额外的安全性和隐私,否则将无法使用。
在Azure App Service上运行时,无法安装任意软件。通常,您无法进行任何计算机级别更改(例如,注册表更改)。
参考:https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox。如果您的要求适合,请在运行IIS的Azure VM上尝试此操作,您可以更好地控制管理VM。