【问题标题】:Unit Test fails to run on solution based on Helix Visual Studio Templates单元测试无法在基于 Helix Visual Studio 模板的解决方案上运行
【发布时间】:2021-04-27 02:01:24
【问题描述】:

我的项目解决方案基于 Ander's Laub 的 Sitecore Helix Visual Studio 模板。我尝试使用 XUnit 编写单元测试,但没有一个测试正在运行,甚至没有失败。

对于测试项目,我尝试使用基于类库(.NET Framework)的项目,基于 Ander's Laub 的 Sitecore Helix Visual Studio 模板的项目。

使用的包:

  1. XUnit(2.4.1)
  2. XUnit.Runner.VisualStudio(2.4.3)
  3. XUnit.Runner.Console(2.4.1)

框架:.NET 4.8

Visual Studio 2019:v16.8.5

我得到的输出:

由于我无法发布图片,这里是文本资源管理器的详细信息: 小组总结

Linde.Foundation.SitecoreExtensions.Tests
  Tests in group: 1

Outcomes
   1 Not Run

DemoTests.cs

public class DemoTests
    {

        [Fact]
        public void DemoTestForPassingOnly()
        {
            double expected = 5;
            double actual = 4;
            Assert.Equal(expected, actual);
        }

     }

测试运行输出窗口:

ProjectData: Could not find project with GUID 09fe023c-998c-4a4c-a896-bc27884e7aaf
ProjectData: Could not find project with GUID 09fe023c-998c-4a4c-a896-bc27884e7aaf
---------- Starting test run ----------
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.3+1b45f5407b (64-bit Desktop .NET 4.0.30319.42000)
No test matches the given testcase filter `FullyQualifiedName=Linde.Foundation.SitecoreExtensions.Tests.DemoTests.DemoTestForPassingOnly` in C:\SourceTree\lindemh-sitecore\bin\Debug\Linde.Foundation.SitecoreExtensions.Tests.dll
========== Test run finished: 0 Tests run in 1.3 sec (0 Passed, 0 Failed, 0 Skipped) ==========


我已尝试使用测试项目构建单独的控制台应用程序,以确保这是否是 Visual Studio 问题,但它在控制台应用程序中运行/失败/通过,而不是在 Sitecore 项目中。

我是否必须以不同方式配置解决方案才能使测试成功运行?

【问题讨论】:

    标签: sitecore xunit xunit.net


    【解决方案1】:

    对于使用 xunit 的简单单元测试,我的包中只有这些引用:

    <?xml version="1.0" encoding="utf-8"?>
    <packages>
      <package id="xunit" version="2.4.1" targetFramework="net462" />
      <package id="xunit.abstractions" version="2.0.3" targetFramework="net462" />
      <package id="xunit.analyzers" version="0.10.0" targetFramework="net462" />
      <package id="xunit.assert" version="2.4.1" targetFramework="net462" />
      <package id="xunit.core" version="2.4.1" targetFramework="net462" />
      <package id="xunit.extensibility.core" version="2.4.1" targetFramework="net462" />
      <package id="xunit.extensibility.execution" version="2.4.1" targetFramework="net462" />
      <package id="xunit.runner.console" version="2.4.1" targetFramework="net462" developmentDependency="true" />
      <package id="xunit.runner.visualstudio" version="2.4.1" targetFramework="net462" developmentDependency="true" />
    </packages>
    

    所以我相信 XUnit.Runner.VisualStudio(2.4.3) 应该是 2.4.1。

    那么一个简单的测试可能是这样的

    using aProject.Foundation.Utilities.Extensions;
    using Xunit;
    
    namespace aProject.Foundation.Utilities.Tests
    {
        public class ExtensionsTests
        {
            public class StringExtensionTests
            {
                [Theory]
                [InlineData("some awesome string")]
                [InlineData("  some  awesome  string  ")]
                public void Should_returnValidSlug_When_passingStringWithSpaces(string name)
                {
                    Assert.Equal("some-awesome-string", name.ToSlug());
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      相关资源
      最近更新 更多