How can I generate code coverage for .Net Core 2.x from integration tests on linux/mac?












2















I am doing .NET core 2 work on a mac (and my build server is linux) and I'm looking for a way to generate code coverage for integration tests that use and embedded web server as the system under test. I can get coverage for my unit tests but not for my Integration style tests.



Im relatively new to .NET but I've familiarized myself with the testing ecosystem as best I can in the last few months.



Currently I'm testing a .NET core 2.2 API using xUnit as my test framework and using the Microsoft supplied Microsoft.AspNetCore.Mvc.Testing package to generate the test server inside of my tests. Very similar to this reference



Then I have tests that use the TestClient to make HTTP requests to the embedded SUT and assert on the response.



I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



I Have DebugType set to Full on the projects, and debug symbol files appear to be generated for all of the relevant code.



The xUnit test fixture for my SUT



namespace Redbox.Product.Tests.Integration.Util
{
public class TestConfigurationFixture
{
private readonly WebApplicationFactory<TestStartup> _webApplicationFactory;

public TestConfigurationFixture()
{
_webApplicationFactory = new CustomWebApplicationFactory<TestStartup>();
}


public HttpClient CreateClient()
{
return _webApplicationFactory.CreateClient();
}
}
}


A Test that executes against this test fixture



    [Fact]
public async Task ResultsForQueryFound_RespondsOK()
{
var response = await _client.PostAsJsonAsync("/products/search",
new ProductSearchRequest
{
Query = "foo"
})
.ToHelper();

response.Should().HaveStatus(OK);
}


I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



Has anyone been able to generate coverage for this type of test?










share|improve this question





























    2















    I am doing .NET core 2 work on a mac (and my build server is linux) and I'm looking for a way to generate code coverage for integration tests that use and embedded web server as the system under test. I can get coverage for my unit tests but not for my Integration style tests.



    Im relatively new to .NET but I've familiarized myself with the testing ecosystem as best I can in the last few months.



    Currently I'm testing a .NET core 2.2 API using xUnit as my test framework and using the Microsoft supplied Microsoft.AspNetCore.Mvc.Testing package to generate the test server inside of my tests. Very similar to this reference



    Then I have tests that use the TestClient to make HTTP requests to the embedded SUT and assert on the response.



    I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



    I Have DebugType set to Full on the projects, and debug symbol files appear to be generated for all of the relevant code.



    The xUnit test fixture for my SUT



    namespace Redbox.Product.Tests.Integration.Util
    {
    public class TestConfigurationFixture
    {
    private readonly WebApplicationFactory<TestStartup> _webApplicationFactory;

    public TestConfigurationFixture()
    {
    _webApplicationFactory = new CustomWebApplicationFactory<TestStartup>();
    }


    public HttpClient CreateClient()
    {
    return _webApplicationFactory.CreateClient();
    }
    }
    }


    A Test that executes against this test fixture



        [Fact]
    public async Task ResultsForQueryFound_RespondsOK()
    {
    var response = await _client.PostAsJsonAsync("/products/search",
    new ProductSearchRequest
    {
    Query = "foo"
    })
    .ToHelper();

    response.Should().HaveStatus(OK);
    }


    I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



    Has anyone been able to generate coverage for this type of test?










    share|improve this question



























      2












      2








      2








      I am doing .NET core 2 work on a mac (and my build server is linux) and I'm looking for a way to generate code coverage for integration tests that use and embedded web server as the system under test. I can get coverage for my unit tests but not for my Integration style tests.



      Im relatively new to .NET but I've familiarized myself with the testing ecosystem as best I can in the last few months.



      Currently I'm testing a .NET core 2.2 API using xUnit as my test framework and using the Microsoft supplied Microsoft.AspNetCore.Mvc.Testing package to generate the test server inside of my tests. Very similar to this reference



      Then I have tests that use the TestClient to make HTTP requests to the embedded SUT and assert on the response.



      I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



      I Have DebugType set to Full on the projects, and debug symbol files appear to be generated for all of the relevant code.



      The xUnit test fixture for my SUT



      namespace Redbox.Product.Tests.Integration.Util
      {
      public class TestConfigurationFixture
      {
      private readonly WebApplicationFactory<TestStartup> _webApplicationFactory;

      public TestConfigurationFixture()
      {
      _webApplicationFactory = new CustomWebApplicationFactory<TestStartup>();
      }


      public HttpClient CreateClient()
      {
      return _webApplicationFactory.CreateClient();
      }
      }
      }


      A Test that executes against this test fixture



          [Fact]
      public async Task ResultsForQueryFound_RespondsOK()
      {
      var response = await _client.PostAsJsonAsync("/products/search",
      new ProductSearchRequest
      {
      Query = "foo"
      })
      .ToHelper();

      response.Should().HaveStatus(OK);
      }


      I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



      Has anyone been able to generate coverage for this type of test?










      share|improve this question
















      I am doing .NET core 2 work on a mac (and my build server is linux) and I'm looking for a way to generate code coverage for integration tests that use and embedded web server as the system under test. I can get coverage for my unit tests but not for my Integration style tests.



      Im relatively new to .NET but I've familiarized myself with the testing ecosystem as best I can in the last few months.



      Currently I'm testing a .NET core 2.2 API using xUnit as my test framework and using the Microsoft supplied Microsoft.AspNetCore.Mvc.Testing package to generate the test server inside of my tests. Very similar to this reference



      Then I have tests that use the TestClient to make HTTP requests to the embedded SUT and assert on the response.



      I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



      I Have DebugType set to Full on the projects, and debug symbol files appear to be generated for all of the relevant code.



      The xUnit test fixture for my SUT



      namespace Redbox.Product.Tests.Integration.Util
      {
      public class TestConfigurationFixture
      {
      private readonly WebApplicationFactory<TestStartup> _webApplicationFactory;

      public TestConfigurationFixture()
      {
      _webApplicationFactory = new CustomWebApplicationFactory<TestStartup>();
      }


      public HttpClient CreateClient()
      {
      return _webApplicationFactory.CreateClient();
      }
      }
      }


      A Test that executes against this test fixture



          [Fact]
      public async Task ResultsForQueryFound_RespondsOK()
      {
      var response = await _client.PostAsJsonAsync("/products/search",
      new ProductSearchRequest
      {
      Query = "foo"
      })
      .ToHelper();

      response.Should().HaveStatus(OK);
      }


      I can generate code coverage for my Unit tests using AltCover and this works great! But when i run altcover over my integration test project, I get no coverage results.



      Has anyone been able to generate coverage for this type of test?







      c# .net-core integration-testing code-coverage






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 4 at 19:36







      Windfall_J

















      asked Jan 3 at 16:55









      Windfall_JWindfall_J

      112




      112
























          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54026572%2fhow-can-i-generate-code-coverage-for-net-core-2-x-from-integration-tests-on-lin%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54026572%2fhow-can-i-generate-code-coverage-for-net-core-2-x-from-integration-tests-on-lin%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Monofisismo

          Angular Downloading a file using contenturl with Basic Authentication

          Olmecas