Я использую Castle Windsor для инъекций зависимостей в своем тестовом проекте. Я пытаюсь создать экземпляр одного из моих классов «Репозиторий». «Он отлично работает на моей машине», но когда я запускаю ночную сборку в TFS, мои тесты не могут загружать указанные классы.Как сделать инъекцию зависимостей в тестовом проекте (TFS 2008) с использованием замка
private static readonly WindsorContainer _container = new WindsorContainer(new XmlInterpreter());
public void MyTestInitialize()
{
var testRepository = (IBogusRepository)_container[typeof(IBogusRepository)];
}
конфигурации XML:
<castle>
<components>
<component id="primaryBogusRepository" type="Example2008.Repository.LALALALALA, Example2008.Repository" service="Example2008.Domain.Repository.IBogusRepository, Example2008.Domain" />
<component id="primaryProductRepository" type="Example2008.Repository.ProductRepository, Example2008.Repository" service="Example2008.Domain.Repository.IProductRepository, Example2008.Domain" />
</components>
</castle>
Когда я в очереди на новую сборку она производит следующее сообщение:
Unable to create instance of class Example2008.Test.ActiveProductRepositoryTest. Error: System.Configuration.ConfigurationException: The type name Example2008.Repository.LALALALALA, Example2008.Repository could not be located.
Castle.Windsor.Installer.DefaultComponentInstaller.ObtainType(String typeName) Castle.Windsor.Installer.DefaultComponentInstaller.SetUpComponents(IConfiguration[] configurations, IWindsorContainer container) Castle.Windsor.Installer.DefaultComponentInstaller.SetUp(IWindsorContainer container, IConfigurationStore store) Castle.Windsor.WindsorContainer.RunInstaller() Castle.Windsor.WindsorContainer..ctor(IConfigurationInterpreter interpreter) Example2008.Test.ActiveProductRepositoryTest..cctor() in d:\Code_Temp\Example Project Nightly\Sources\Example2008.Test\ProductRepositoryTest.cs: line 19
Из этого сообщения, кажется, что моя конфигурация является правильным (это может видеть, что я хочу создать конкретный класс «LALALALALA», поэтому конфигурация xml, очевидно, была правильно красной)
Я думаю, что мои настройки зависимы также правильно (потому что он работает локально, даже если я очищаю решение и перестраиваю).
Любые мысли?
(с помощью VS2008, TFS 2008.Net 3,5, Замок 1,03, кстати)
это звучит правдоподобно, но как его получить? в каком каталоге TFS выполняются его тесты? Я проверил, и DLL-хранилище, по-видимому, не развернуто на сервере \ Build_output \ Example Project Nightly_20080919.9 \ TestResults \ 9598f1df-cd1d-49b2-a915-4ee06532ef9f \ Out (в то время как остальные файлы), если он не будет скопирован там автоматически? (в конце концов, это ссылка на проект, а для копии local - значение true) – ampburner 2008-09-19 13:07:37