测量手册/自动功能测试代码覆盖率

时间:2018-06-01 13:51:15

标签: azure code-coverage test-coverage

我们正在尝试为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?

1 个答案:

答案 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。

相关问题