-
Notifications
You must be signed in to change notification settings - Fork 36
Configuration
Sitecore.FakeDb automatically includes configuration files located in the <test_project>\App_Config\Include folder. You can read more about the include files in the following post:
ALL ABOUT WEB.CONFIG INCLUDE FILES WITH THE SITECORE ASP.NET CMS | JOHN WEST | SITECORE BLOG.
- In a unit test project, create a new
App_Config\Include\MyUnitTests.configfile which contains the required configuration, for instance, theMyApp.Enabledsetting:
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<settings>
<setting name="MyApp.Enabled" value="true" />
</settings>
</sitecore>
</configuration>- In a unit test, read the setting using the regular
Sitecore.Configuration.Settingsclass:
[Fact]
public void ShouldReadMyAppEnabledSetting()
{
var enabled =
Sitecore.Configuration.Settings.GetBoolSetting("MyApp.Enabled", false);
Assert.True(enabled);
}Starting from version 0.26.0 FakeDb supports Sitecore include files. NCrunch uses a concept called Workspaces, which means all the files required to run a test must be copied to a workspace.
In order to run unit tests with NCrunch, in the NCrunch Configuration window, select the tests project and configure the following settings:

As a result, the <test_project>.ncrunchproject file should have the following settings:
<CopyReferencedAssembliesToWorkspace>true</CopyReferencedAssembliesToWorkspace>
<AdditionalFilesToInclude>license.xml;App_Config\**.*</AdditionalFilesToInclude>Important
You may need to restart NCrunch to apply the configuration changes
Read more about the configuration on the NCrunch documentation website:
The error:
*** Failures ***
Exception
System.IO.DirectoryNotFoundException: System.IO.DirectoryNotFoundException :
Could not find a part of the path 'C:\Users\admin\AppData\Local\NCrunch\296\4\
app_config\fieldtypes.config'.
By default, Sitecore FakeDb assumes that the location of the App_Config folder is the test project root. Taking into account that the default output paths for the Class Library project is bin\Debug\ (bin\Release), the following relative path is used for the FieldTypes setting:
<fieldTypes>
<sc.include file="..\..\App_Config\FieldTypes.config" />
</fieldTypes>Please ensure that the path is correct.
The same stands for the LicensePath setting:
<setting name="LicenseFile" value="..\..\license.xml" />