2016-06-28 10 views
7

У меня очень простой тест, как показано ниже. Я пытаюсь заморозить две мои зависимости, используя AutoDataAttribute + AutoMoqCustomization.Исключение XUnit и AutoFixture Данные не найдены (имя теста)

class AutoMoqDataAttribute : AutoDataAttribute 
{ 
    public AutoMoqDataAttribute() 
     : base(new Fixture().Customize(new AutoMoqCustomization())) 
    { } 
} 

public class PrBatchEndorseBrokerTest 
{ 
    [Theory, AutoMoqData] 
    public void Process_ValidContext_CallsK2Workflows(
     [Frozen]Mock<IK2Datasource> k2, 
     [Frozen]Mock<IAppConfiguration> config, 
     PrBatchEndorseBroker sut) 
    { 
     // Arrange 
     var data = new Dictionary<string, object> 
     { 
      ["Workflow"] = @"KLPurchaseRequest\PR", 
      ["Activity"] = "Endorser", 
      ["ViewFormURL"] = "/Form/KLPurchaseRequestApproval.Form", 
      ["PositiveOutcome"] = "Endorse", 
      ["NegativeOutcome"] = "Reject" 
     }; 

     // Act 
     sut.Process(); 

     // Assert 
     k2.Verify(x => 
      x.StartInstance(It.IsAny<string>(), 
          It.Is<Dictionary<string, object>>(d => 
           data.Keys.All(k => d[k] == data[k]))) 
      , Times.Once()); 
    } 
} 

По некоторым причинам, когда я запустить этот тест, я получаю следующее сообщение об ошибке:

System.InvalidOperationException: No data found for BlackBox.Stakhanov.Broker.Test.PrBatchEndorseBrokerTest.Process_ValidContext_CallsK2Workflows

Я пробовал много вещей, и я не могу заставить его работать! Я думаю, что мне не хватает чего-то большого и, вероятно, очевидного!

пакеты Я использую:

<package id="AutoFixture" version="3.47.8" targetFramework="net452" /> 
<package id="AutoFixture.AutoMoq" version="3.47.8" targetFramework="net452" /> 
<package id="AutoFixture.Xunit" version="3.47.8" targetFramework="net461" /> 
<package id="Castle.Core" version="3.3.3" targetFramework="net461" /> 
<package id="Moq" version="4.5.10" targetFramework="net461" /> 
<package id="xunit" version="2.1.0" targetFramework="net461" /> 
<package id="xunit.abstractions" version="2.0.0" targetFramework="net452" /> 
<package id="xunit.assert" version="2.1.0" targetFramework="net461" /> 
<package id="xunit.core" version="2.1.0" targetFramework="net461" /> 
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="net461" /> 
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net461" /> 
<package id="xunit.extensions" version="1.9.0.1566" targetFramework="net461" /> 
+0

Вы пробовали сделать '' AutoMoqDataAttribute' public'? –

+0

Да же результат. Я попытался удалить PrBatchEndorseBroker, добавить его обратно. Всегда та же ошибка – Seb

+0

Не могли бы вы перечислить _exactly_, какие пакеты NuGet вы используете? Вы можете легко получить список с 'Get-Package' из консоли NuGet Package Manager. –

ответ

14

При использовании xUnit.NET 2, вы должны использовать AutoFixture.Xunit2, не AutoFixture.Xunit.

Вы заметите в списке пакетов, которые у вас есть xunit.extensions версия 1.9.0.1566, который не совместим с xUnit.NET 2.

 Смежные вопросы

  • Нет связанных вопросов^_^