diff --git a/src/TestStack.Seleno.AcceptanceTests.Web/App_Start/RegisterChameleonFormsComponents.cs b/src/TestStack.Seleno.AcceptanceTests.Web/App_Start/RegisterChameleonFormsComponents.cs index 73b4f7f9..6eb043f1 100644 --- a/src/TestStack.Seleno.AcceptanceTests.Web/App_Start/RegisterChameleonFormsComponents.cs +++ b/src/TestStack.Seleno.AcceptanceTests.Web/App_Start/RegisterChameleonFormsComponents.cs @@ -1,10 +1,12 @@ +using ChameleonForms.Attributes; using ChameleonForms.ModelBinders; using System; +using System.Linq; using System.Web.Mvc; -[assembly: WebActivator.PreApplicationStartMethod(typeof(TestStack.Seleno.AcceptanceTests.Web.App_Start.RegisterChameleonFormsComponents), "Start")] +[assembly: WebActivator.PreApplicationStartMethod(typeof(TestStack.Seleno.AcceptanceTests.Web.RegisterChameleonFormsComponents), "Start")] -namespace TestStack.Seleno.AcceptanceTests.Web.App_Start +namespace TestStack.Seleno.AcceptanceTests.Web { public static class RegisterChameleonFormsComponents { @@ -12,6 +14,13 @@ public static void Start() { ModelBinders.Binders.Add(typeof(DateTime), new DateTimeModelBinder()); ModelBinders.Binders.Add(typeof(DateTime?), new DateTimeModelBinder()); + DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(RequiredFlagsEnumAttribute), typeof(RequiredAttributeAdapter)); + typeof(RegisterChameleonFormsComponents).Assembly.GetTypes().Where(t => t.IsEnum && t.GetCustomAttributes(typeof(FlagsAttribute), false).Any()) + .ToList().ForEach(t => + { + ModelBinders.Binders.Add(t, new FlagsEnumModelBinder()); + ModelBinders.Binders.Add(typeof(Nullable<>).MakeGenericType(t), new FlagsEnumModelBinder()); + }); } } } diff --git a/src/TestStack.Seleno.AcceptanceTests.Web/Fixtures/ViewModelEqualsConstraint.cs b/src/TestStack.Seleno.AcceptanceTests.Web/Fixtures/ViewModelEqualsConstraint.cs index be5a3cd1..13f0ddba 100644 --- a/src/TestStack.Seleno.AcceptanceTests.Web/Fixtures/ViewModelEqualsConstraint.cs +++ b/src/TestStack.Seleno.AcceptanceTests.Web/Fixtures/ViewModelEqualsConstraint.cs @@ -24,12 +24,13 @@ public ViewModelEqualsConstraint(object expectedViewModel) _expectedViewModel = expectedViewModel; } - public override bool Matches(object actualViewModel) + public override ConstraintResult ApplyTo(TActual actualViewModel) { foreach (var property in actualViewModel.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)) { if (property.IsReadonly()) continue; + var expectedValue = property.GetValue(_expectedViewModel, null); var actualValue = property.GetValue(actualViewModel, null); @@ -39,12 +40,7 @@ public override bool Matches(object actualViewModel) Assert.That(actualValue, Is.EqualTo(expectedValue), property.Name); } - return true; - } - - public override void WriteDescriptionTo(MessageWriter writer) - { - throw new System.NotImplementedException(); + return new ConstraintResult(this, actualViewModel, true); } } diff --git a/src/TestStack.Seleno.AcceptanceTests.Web/Scripts/jquery.validate.unobtrusive.chameleon.js b/src/TestStack.Seleno.AcceptanceTests.Web/Scripts/jquery.validate.unobtrusive.chameleon.js index c7fa3aa0..c837993a 100644 --- a/src/TestStack.Seleno.AcceptanceTests.Web/Scripts/jquery.validate.unobtrusive.chameleon.js +++ b/src/TestStack.Seleno.AcceptanceTests.Web/Scripts/jquery.validate.unobtrusive.chameleon.js @@ -147,11 +147,9 @@ var minute = match[timeParser.minuteIndex] * 1; var is12Hour = timeParser.is12HourTime; - if (hour < 1) + if (is12Hour && (hour < 1 || hour > 12)) return false; - if (is12Hour && hour > 12) - return false; - if (!is12Hour && hour > 23) + if (!is12Hour && (hour < 0 || hour > 23)) return false; if (minute < 0 || minute > 59) return false; diff --git a/src/TestStack.Seleno.AcceptanceTests.Web/TestStack.Seleno.AcceptanceTests.Web.csproj b/src/TestStack.Seleno.AcceptanceTests.Web/TestStack.Seleno.AcceptanceTests.Web.csproj index c912ddf7..5a90d9d9 100644 --- a/src/TestStack.Seleno.AcceptanceTests.Web/TestStack.Seleno.AcceptanceTests.Web.csproj +++ b/src/TestStack.Seleno.AcceptanceTests.Web/TestStack.Seleno.AcceptanceTests.Web.csproj @@ -1,5 +1,6 @@  - + + Debug @@ -8,12 +9,12 @@ 2.0 {B8359DE7-3953-448C-A9AB-3E5C7F26AFCE} - {E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} Library Properties TestStack.Seleno.AcceptanceTests.Web TestStack.Seleno.AcceptanceTests.Web - v4.0 + v4.7.1 false true @@ -22,6 +23,10 @@ ..\..\..\ + + + + true @@ -31,6 +36,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -39,92 +45,72 @@ TRACE prompt 4 + false - - False - ..\packages\Castle.Core.3.3.3\lib\net40-client\Castle.Core.dll + + ..\packages\Castle.Core.4.3.1\lib\net45\Castle.Core.dll - - False - ..\packages\ChameleonForms.1.0.0.42\lib\NET40\ChameleonForms.dll + + ..\packages\ChameleonForms.3.0.2\lib\NET40\ChameleonForms.dll - - False - ..\packages\Humanizer.1.0\lib\NET40\Humanizer.dll + + ..\packages\Humanizer.Core.2.5.16\lib\netstandard2.0\Humanizer.dll - - False - ..\packages\Newtonsoft.Json.5.0.6\lib\net40\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - - False - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + ..\packages\NUnit.3.11.0\lib\net45\nunit.framework.dll + - - False - ..\packages\Microsoft.Net.Http.2.2.28\lib\net40\System.Net.Http.dll - - - ..\packages\Microsoft.Net.Http.2.2.28\lib\net40\System.Net.Http.Extensions.dll - True + + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - - ..\packages\Microsoft.AspNet.WebApi.Client.4.0.30506.0\lib\net40\System.Net.Http.Formatting.dll + + ..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll - - False - ..\packages\Microsoft.Net.Http.2.2.28\lib\net40\System.Net.Http.Primitives.dll - - - False - ..\packages\Microsoft.Net.Http.2.2.28\lib\net40\System.Net.Http.WebRequest.dll + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + - - - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.Helpers.dll + + + + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - ..\packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll + + ..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll - - ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll + + ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll - - True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll + + ..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - True - ..\packages\Microsoft.AspNet.Razor.2.0.30506.0\lib\net40\System.Web.Razor.dll + + ..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.dll + + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Deployment.dll + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - @@ -133,16 +119,15 @@ True ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + ..\packages\WebActivator.1.5.3\lib\net40\WebActivator.dll - - ..\packages\Selenium.WebDriver.2.53.0\lib\net40\WebDriver.dll - True + + ..\packages\Selenium.WebDriver.3.141.0\lib\net45\WebDriver.dll - - ..\packages\Selenium.Support.2.53.0\lib\net40\WebDriver.Support.dll - True + + ..\packages\Selenium.Support.3.141.0\lib\net45\WebDriver.Support.dll @@ -162,7 +147,9 @@ - + + Designer + @@ -195,6 +182,7 @@ + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) @@ -223,10 +211,13 @@ - - - - + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + - + - + @@ -52,7 +48,7 @@ - + diff --git a/src/TestStack.Seleno.AcceptanceTests.Web/Web.config b/src/TestStack.Seleno.AcceptanceTests.Web/Web.config index 97de089b..f5039296 100644 --- a/src/TestStack.Seleno.AcceptanceTests.Web/Web.config +++ b/src/TestStack.Seleno.AcceptanceTests.Web/Web.config @@ -1,15 +1,23 @@  - + + - - + + @@ -24,17 +32,14 @@ - + + + + + + - - - - - - - - @@ -43,6 +48,26 @@ + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/src/TestStack.Seleno.AcceptanceTests.Web/packages.config b/src/TestStack.Seleno.AcceptanceTests.Web/packages.config index f521d695..1836c983 100644 --- a/src/TestStack.Seleno.AcceptanceTests.Web/packages.config +++ b/src/TestStack.Seleno.AcceptanceTests.Web/packages.config @@ -1,22 +1,65 @@  - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + \ No newline at end of file diff --git a/src/TestStack.Seleno.AcceptanceTests/App.config b/src/TestStack.Seleno.AcceptanceTests/App.config index 82bd3ae5..ff929dfa 100644 --- a/src/TestStack.Seleno.AcceptanceTests/App.config +++ b/src/TestStack.Seleno.AcceptanceTests/App.config @@ -8,11 +8,11 @@ - + - + @@ -26,6 +26,14 @@ + + + + + + + + - + diff --git a/src/TestStack.Seleno.AcceptanceTests/Browsers/BrowserTests.cs b/src/TestStack.Seleno.AcceptanceTests/Browsers/BrowserTests.cs index 4f305b1e..d1bed3a0 100644 --- a/src/TestStack.Seleno.AcceptanceTests/Browsers/BrowserTests.cs +++ b/src/TestStack.Seleno.AcceptanceTests/Browsers/BrowserTests.cs @@ -36,14 +36,6 @@ protected override RemoteWebDriver WebDriver } } - class PhantomJSTest : BrowserTest - { - protected override RemoteWebDriver WebDriver - { - get { return BrowserFactory.PhantomJS(); } - } - } - class FirefoxTest : BrowserTest { protected override RemoteWebDriver WebDriver diff --git a/src/TestStack.Seleno.AcceptanceTests/Configuration/DomCaptureTests.cs b/src/TestStack.Seleno.AcceptanceTests/Configuration/DomCaptureTests.cs index 791ff275..7c708fd1 100644 --- a/src/TestStack.Seleno.AcceptanceTests/Configuration/DomCaptureTests.cs +++ b/src/TestStack.Seleno.AcceptanceTests/Configuration/DomCaptureTests.cs @@ -18,7 +18,7 @@ class DomCaptureTests private SelenoHost _host; private const string DomCaptureFolderPath = @"c:\domcapture"; - [TestFixtureSetUp] + [OneTimeSetUp] public void FixtureSetup() { _host = new SelenoHost(); @@ -30,26 +30,30 @@ public void FixtureSetup() ); } - [TestFixtureTearDown] + [OneTimeTearDown] public void FixtureTearDown() { _host.Dispose(); } [Test] - [ExpectedException(typeof(SelenoReceivedException))] public void CaptureDomFromElementFinder() { - _host.NavigateToInitialPage() - .NavigateToNonExistentPageWithElementFinder(); + Assert.Throws(() => + { + _host.NavigateToInitialPage() + .NavigateToNonExistentPageWithElementFinder(); + }); } [Test] - [ExpectedException(typeof(SelenoReceivedException))] public void CaptureDomFromPageNavigator() { - _host.NavigateToInitialPage() - .NavigateToNonExistentPageWithPageNavigator(); + Assert.Throws(() => + { + _host.NavigateToInitialPage() + .NavigateToNonExistentPageWithPageNavigator(); + }); } [Test] @@ -63,10 +67,7 @@ public void CaptureDomFromSelenoApplicationThrowsAndSavesDomToFile() using (new TestableSystemTime(dateTime)) { - Action result = () => _host.Application.CaptureDomAndThrow(captureName, errorMessage); - - result.ShouldThrow() - .WithMessage(errorMessage); + Assert.Throws(() => { _host.Application.CaptureDomAndThrow(captureName, errorMessage); }, errorMessage); File.Exists(fileName).Should().BeTrue(); } } diff --git a/src/TestStack.Seleno.AcceptanceTests/Configuration/EnvironmentVariablesTests.cs b/src/TestStack.Seleno.AcceptanceTests/Configuration/EnvironmentVariablesTests.cs index e6732fd8..87aa52e6 100644 --- a/src/TestStack.Seleno.AcceptanceTests/Configuration/EnvironmentVariablesTests.cs +++ b/src/TestStack.Seleno.AcceptanceTests/Configuration/EnvironmentVariablesTests.cs @@ -11,7 +11,7 @@ class EnvironmentVariablesTests { private SelenoHost _host; - [TestFixtureSetUp] + [OneTimeSetUp] public void FixtureSetup() { _host = new SelenoHost(); @@ -20,7 +20,7 @@ public void FixtureSetup() .WithEnvironmentVariable("FunctionalTest", "SomeVal")); } - [TestFixtureTearDown] + [OneTimeTearDown] public void FixtureTeardown() { _host.Dispose(); diff --git a/src/TestStack.Seleno.AcceptanceTests/Configuration/ProcessLifecycleTests.cs b/src/TestStack.Seleno.AcceptanceTests/Configuration/ProcessLifecycleTests.cs index 23ac751d..c1792d86 100644 --- a/src/TestStack.Seleno.AcceptanceTests/Configuration/ProcessLifecycleTests.cs +++ b/src/TestStack.Seleno.AcceptanceTests/Configuration/ProcessLifecycleTests.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics; using System.Threading; using Castle.Core.Internal; @@ -14,17 +15,15 @@ class ProcessLifecycleTests { private const string Chrome = "chromedriver"; private const string IE = "IEDriverServer"; - private const string Phantom = "phantomjs"; private const string Firefox = "firefox"; private const string IisExpress = "iisexpress"; [TestCase(Chrome)] [TestCase(IE)] - [TestCase(Phantom)] [TestCase(Firefox)] public void Closing_SelenoHost_should_close_child_browser(string driverName) { - Process.GetProcessesByName(driverName).ForEach(StopProcess); + Process.GetProcessesByName(driverName).As>().ForEach(StopProcess); var selenoHost = new SelenoHost(); Func driver = GetBrowserFactory(driverName); selenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346, @@ -40,7 +39,7 @@ public void Closing_SelenoHost_should_close_child_browser(string driverName) public void Closing_SelenoHost_should_close_Iis_Express() { PatientlyStopProcess(IisExpress); - Process.GetProcessesByName("chromedriver").ForEach(StopProcess); + Process.GetProcessesByName("chromedriver").As>().ForEach(StopProcess); var selenoHost = new SelenoHost(); selenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346, @@ -57,7 +56,7 @@ private void PatientlyStopProcess(string processName) { for (int i = 0; i < 5; i++) { - Process.GetProcessesByName(processName).ForEach(StopProcess); + Process.GetProcessesByName(processName).As>().ForEach(StopProcess); if (Process.GetProcessesByName(processName).Length > 0) { Thread.Sleep(5000); @@ -82,8 +81,6 @@ private Func GetBrowserFactory(string browser) return BrowserFactory.Chrome; case IE: return BrowserFactory.InternetExplorer; - case Phantom: - return BrowserFactory.PhantomJS; case Firefox: return BrowserFactory.FireFox; } diff --git a/src/TestStack.Seleno.AcceptanceTests/Configuration/ProjectLocationTests.cs b/src/TestStack.Seleno.AcceptanceTests/Configuration/ProjectLocationTests.cs index 4d0970c4..0636a297 100644 --- a/src/TestStack.Seleno.AcceptanceTests/Configuration/ProjectLocationTests.cs +++ b/src/TestStack.Seleno.AcceptanceTests/Configuration/ProjectLocationTests.cs @@ -67,30 +67,28 @@ public void TearDown() public void FromFolder_should_return_the_folder_of_web_application() { var solutionLocation = ProjectLocation.FromFolder(_webAppName); - solutionLocation.FullPath.ShouldBeEquivalentTo(_rootPath + @"\" + _webAppName); + solutionLocation.FullPath.Should().BeEquivalentTo(_rootPath + @"\" + _webAppName); } [Test] public void FromFolder_should_raise_a_SolutionNotFoundException_when_no_solution_is_found() { File.Delete(_solutionFile); - Action action = () => ProjectLocation.FromFolder(_webAppName); - action.ShouldThrow(); + + Assert.Throws(() => ProjectLocation.FromFolder(_webAppName)); } [Test] public void FromFolder_should_raise_a_DirectoryNotFoundException_when_no_folder_is_found() { - Action action = () => ProjectLocation.FromFolder("non-existent-folder"); - action.ShouldThrow() - .WithMessage(_rootPath); + Assert.Throws(()=> ProjectLocation.FromFolder("non-existent-folder"), _rootPath); } [Test] public void FromPath_should_return_the_path_to_web_application() { var solutionLocation = ProjectLocation.FromPath(_webApplicationPath); - solutionLocation.FullPath.ShouldBeEquivalentTo(_webApplicationPath); + solutionLocation.FullPath.Should().BeEquivalentTo(_webApplicationPath); } } } \ No newline at end of file diff --git a/src/TestStack.Seleno.AcceptanceTests/Configuration/ScreenshotTests.cs b/src/TestStack.Seleno.AcceptanceTests/Configuration/ScreenshotTests.cs index 5e0f7129..7befb453 100644 --- a/src/TestStack.Seleno.AcceptanceTests/Configuration/ScreenshotTests.cs +++ b/src/TestStack.Seleno.AcceptanceTests/Configuration/ScreenshotTests.cs @@ -18,7 +18,7 @@ class ScreenshotTest private SelenoHost _host; private const string CameraFolderPath = @"c:\screenshots"; - [TestFixtureSetUp] + [OneTimeSetUp] public void FixtureSetup() { _host = new SelenoHost(); @@ -30,26 +30,30 @@ public void FixtureSetup() ); } - [TestFixtureTearDown] + [OneTimeTearDown] public void FixtureTeardown() { _host.Dispose(); } [Test] - [ExpectedException(typeof(SelenoReceivedException))] public void TakeScreenshotFromElementFinder() { - _host.NavigateToInitialPage() - .NavigateToNonExistentPageWithElementFinder(); + Assert.Throws(() => + { + _host.NavigateToInitialPage() + .NavigateToNonExistentPageWithElementFinder(); + }); } [Test] - [ExpectedException(typeof(SelenoReceivedException))] public void TakeScreenshotFromPageNavigator() { - _host.NavigateToInitialPage() - .NavigateToNonExistentPageWithPageNavigator(); + Assert.Throws(() => + { + _host.NavigateToInitialPage() + .NavigateToNonExistentPageWithPageNavigator(); + }); } [Test] @@ -63,10 +67,7 @@ public void TakeScreenshotFromSelenoApplicationThrowsAndSavesScreenshotToFile() using (new TestableSystemTime(dateTime)) { - Action result = () => _host.Application.TakeScreenshotAndThrow(imageName, errorMessage); - - result.ShouldThrow() - .WithMessage(errorMessage); + Assert.Throws(() => { _host.Application.TakeScreenshotAndThrow(imageName, errorMessage); }, errorMessage); File.Exists(fileName).Should().BeTrue(); } } diff --git a/src/TestStack.Seleno.AcceptanceTests/Configuration/SelenoApplicationTests.cs b/src/TestStack.Seleno.AcceptanceTests/Configuration/SelenoApplicationTests.cs index ff788776..12cefaea 100644 --- a/src/TestStack.Seleno.AcceptanceTests/Configuration/SelenoApplicationTests.cs +++ b/src/TestStack.Seleno.AcceptanceTests/Configuration/SelenoApplicationTests.cs @@ -11,7 +11,7 @@ class SelenoApplicationTests { private SelenoHost _host; - [TestFixtureSetUp] + [OneTimeSetUp] public void FixtureSetup() { _host = new SelenoHost(); @@ -21,7 +21,7 @@ public void FixtureSetup() _host.Application.Browser.Manage().Window.Size = new Size(750,750); } - [TestFixtureTearDown] + [OneTimeTearDown] public void FixtureTeardown() { _host.Dispose(); diff --git a/src/TestStack.Seleno.AcceptanceTests/TestStack.Seleno.AcceptanceTests.csproj b/src/TestStack.Seleno.AcceptanceTests/TestStack.Seleno.AcceptanceTests.csproj index b1c5a161..6d5c2331 100644 --- a/src/TestStack.Seleno.AcceptanceTests/TestStack.Seleno.AcceptanceTests.csproj +++ b/src/TestStack.Seleno.AcceptanceTests/TestStack.Seleno.AcceptanceTests.csproj @@ -1,5 +1,6 @@  - + + Debug @@ -9,9 +10,12 @@ Properties TestStack.Seleno.AcceptanceTests TestStack.Seleno.AcceptanceTests - v4.0 + v4.7.1 512 ..\ + + + true @@ -21,6 +25,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -29,77 +34,64 @@ TRACE prompt 4 + false - - False - ..\packages\Castle.Core.3.3.3\lib\net40-client\Castle.Core.dll + + ..\packages\Castle.Core.4.3.1\lib\net45\Castle.Core.dll - - False - ..\packages\FluentAssertions.3.3.0\lib\net40\FluentAssertions.dll - - - False - ..\packages\FluentAssertions.3.3.0\lib\net40\FluentAssertions.Core.dll + + ..\packages\FluentAssertions.5.6.0\lib\net47\FluentAssertions.dll True ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - False - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + ..\packages\NUnit.3.11.0\lib\net45\nunit.framework.dll + - - False - ..\packages\Microsoft.Net.Http.2.2.28\lib\net40\System.Net.Http.dll + + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll - - ..\packages\Microsoft.Net.Http.2.2.28\lib\net40\System.Net.Http.Extensions.dll - True + + ..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll + + - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.Helpers.dll + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll - True + + ..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - True - ..\packages\Microsoft.AspNet.Razor.2.0.30506.0\lib\net40\System.Web.Razor.dll + + ..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.dll + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Deployment.dll - True + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll + + ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - ..\packages\TestStack.BDDfy.4.2.0\lib\net40\TestStack.BDDfy.dll - True + + ..\packages\TestStack.BDDfy.4.3.2\lib\net40\TestStack.BDDfy.dll - - ..\packages\Selenium.WebDriver.2.53.0\lib\net40\WebDriver.dll - True + + ..\packages\Selenium.WebDriver.3.141.0\lib\net45\WebDriver.dll - - ..\packages\Selenium.Support.2.53.0\lib\net40\WebDriver.Support.dll - True + + ..\packages\Selenium.Support.3.141.0\lib\net45\WebDriver.Support.dll @@ -146,28 +138,27 @@ - + phantomjs.exe PreserveNewest - - chromedriver.exe - PreserveNewest - - - IEDriverServer.exe - PreserveNewest - PreserveNewest - - - - + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + +