单元测试无法在基于 Helix Visual Studio 模板的解决方案上运行

时间:2021-04-13 15:51:02

标签: sitecore xunit xunit.net

我的项目解决方案基于 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 项目内部。

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

1 个答案:

答案 0 :(得分:0)

对于使用 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());
            }
        }
    }
}
相关问题