예제 #1
0
 public void FixtureNamePlusAssemblyIsValid()
 {
     ConsoleOptions options = new ConsoleOptions( "-fixture:NUnit.Tests.AllTests", "nunit.tests.dll" );
     Assert.AreEqual("nunit.tests.dll", options.Parameters[0]);
     Assert.AreEqual("NUnit.Tests.AllTests", options.fixture);
     Assert.IsTrue(options.Validate());
 }
예제 #2
0
 public void ExcludeCategories()
 {
     ConsoleOptions options = new ConsoleOptions( "tests.dll", "-exclude:Database;Slow" );
     Assert.IsTrue( options.Validate() );
     Assert.IsNotNull(options.exclude);
     Assert.AreEqual(options.exclude, "Database;Slow");
     Assert.IsTrue(options.HasExclude);
     string[] categories = options.ExcludedCategories;
     Assert.IsNotNull(categories);
     Assert.AreEqual(2, categories.Length);
     Assert.AreEqual("Database", categories[0]);
     Assert.AreEqual("Slow", categories[1]);
 }
예제 #3
0
 public void ExploreOptionWithoutPath()
 {
     ConsoleOptions options = new ConsoleOptions("tests.dll", "-explore");
     Assert.True(options.Validate());
     Assert.True(options.Explore);
 }
예제 #4
0
        public void ResultOptionMayBeRepeated()
        {
            ConsoleOptions options = new ConsoleOptions("tests.dll", "-result:results.xml", "-result:nunit2results.xml;format=nunit2", "-result:myresult.xml;transform=mytransform.xslt");
            Assert.True(options.Validate(), "Should be valid");

            var specs = options.ResultOutputSpecifications;
            Assert.AreEqual(3, specs.Count);

            var spec1 = specs[0];
            Assert.AreEqual("results.xml", spec1.OutputPath);
            Assert.AreEqual("nunit3", spec1.Format);
            Assert.Null(spec1.Transform);

            var spec2 = specs[1];
            Assert.AreEqual("nunit2results.xml", spec2.OutputPath);
            Assert.AreEqual("nunit2", spec2.Format);
            Assert.Null(spec2.Transform);

            var spec3 = specs[2];
            Assert.AreEqual("myresult.xml", spec3.OutputPath);
            Assert.AreEqual("user", spec3.Format);
            Assert.AreEqual("mytransform.xslt", spec3.Transform);
        }
예제 #5
0
 public void NoInputFiles()
 {
     ConsoleOptions options = new ConsoleOptions();
     Assert.True(options.Validate());
     Assert.AreEqual(0, options.InputFiles.Count);
 }
		public void FileNameWithoutXmlParameterLooksLikeParameter()
		{
			ConsoleOptions options = new ConsoleOptions( "tests.dll", "result.xml" );
			Assert.IsTrue(options.Validate());
			Assert.AreEqual(2, options.Parameters.Count);
		}
예제 #7
0
 public void IncludeAndExcludeAreInvalidTogether()
 {
     ConsoleOptions options = new ConsoleOptions( "tests.dll", "-include:Database;Slow", "-exclude:Fast" );
     Assert.IsFalse( options.Validate() );
 }
예제 #8
0
 public void FileNameWithoutXmlParameterIsInvalid()
 {
     ConsoleOptions options = new ConsoleOptions( "tests.dll", ":result.xml" );
     Assert.IsFalse(options.Validate());
 }
예제 #9
0
        public void CanRecognizeLowerCaseOptionValues(string propertyName, string optionName, string[] canonicalValues)
        {
            PropertyInfo property = GetPropertyInfo(propertyName);
            Assert.AreEqual(typeof(string), property.PropertyType);

            foreach (string canonicalValue in canonicalValues)
            {
                string lowercaseValue = canonicalValue.ToLower(CultureInfo.InvariantCulture);
                string optionPlusValue = string.Format("--{0}:{1}", optionName, lowercaseValue);
                ConsoleOptions options = new ConsoleOptions(optionPlusValue);
                Assert.True(options.Validate(), "Should be valid: " + optionPlusValue);
                Assert.AreEqual(canonicalValue, (string)property.GetValue(options, null), "Didn't recognize " + optionPlusValue);
            }
        }
예제 #10
0
 public void TimeoutIsMinusOneIfNoOptionIsProvided()
 {
     ConsoleOptions options = new ConsoleOptions("tests.dll");
     Assert.True(options.Validate());
     Assert.AreEqual(-1, options.DefaultTimeout);
 }
예제 #11
0
 public void TimeoutParsesIntValueCorrectly()
 {
     ConsoleOptions options = new ConsoleOptions("tests.dll", "-timeout:5000");
     Assert.True(options.Validate());
     Assert.AreEqual(5000, options.DefaultTimeout);
 }
예제 #12
0
 public void InvalidOption()
 {
     ConsoleOptions options = new ConsoleOptions("-asembly:nunit.tests.dll");
     Assert.False(options.Validate());
     Assert.AreEqual(1, options.ErrorMessages.Count);
     Assert.AreEqual("Invalid argument: -asembly:nunit.tests.dll", options.ErrorMessages[0]);
 }
예제 #13
0
 public void InvalidCommandLineParms()
 {
     ConsoleOptions options = new ConsoleOptions("-garbage:TestFixture", "-assembly:Tests.dll");
     Assert.False(options.Validate());
     Assert.AreEqual(2, options.ErrorMessages.Count);
     Assert.AreEqual("Invalid argument: -garbage:TestFixture", options.ErrorMessages[0]);
     Assert.AreEqual("Invalid argument: -assembly:Tests.dll", options.ErrorMessages[1]);
 }
예제 #14
0
 public void AssemblyAloneIsValid()
 {
     ConsoleOptions options = new ConsoleOptions("nunit.tests.dll");
     Assert.True(options.Validate());
     Assert.AreEqual(0, options.ErrorMessages.Count, "command line should be valid");
 }
예제 #15
0
 public void AssemblyName()
 {
     ConsoleOptions options = new ConsoleOptions("nunit.tests.dll");
     Assert.True(options.Validate());
     Assert.AreEqual(1, options.InputFiles.Count);
     Assert.AreEqual("nunit.tests.dll", options.InputFiles[0]);
 }
예제 #16
0
 public void MissingValuesAreReported(string option)
 {
     ConsoleOptions options = new ConsoleOptions(option + "=");
     Assert.False(options.Validate(), "Missing value should not be valid");
     Assert.AreEqual("Missing required value for option '" + option + "'.", options.ErrorMessages[0]);
 }
예제 #17
0
        public void ExploreOptionWithFilePathAndTransform()
        {
            ConsoleOptions options = new ConsoleOptions("tests.dll", "-explore:results.xml;transform=myreport.xslt");
            Assert.True(options.Validate());
            Assert.AreEqual(1, options.InputFiles.Count, "assembly should be set");
            Assert.AreEqual("tests.dll", options.InputFiles[0]);
            Assert.True(options.Explore);

            OutputSpecification spec = options.ExploreOutputSpecifications[0];
            Assert.AreEqual("results.xml", spec.OutputPath);
            Assert.AreEqual("user", spec.Format);
            Assert.AreEqual("myreport.xslt", spec.Transform);
        }
		public void AssemblyAloneIsValid()
		{
			ConsoleOptions options = new ConsoleOptions( "nunit.tests.dll" );
			Assert.IsTrue(options.Validate(), "command line should be valid");
		}
예제 #19
0
 public void ExploreOptionWithFilePathUsingEqualSign()
 {
     ConsoleOptions options = new ConsoleOptions("tests.dll", "-explore=C:/nunit/tests/bin/Debug/console-test.xml");
     Assert.True(options.Validate());
     Assert.True(options.Explore);
     Assert.AreEqual(1, options.InputFiles.Count, "assembly should be set");
     Assert.AreEqual("tests.dll", options.InputFiles[0]);
     Assert.AreEqual("C:/nunit/tests/bin/Debug/console-test.xml", options.ExploreOutputSpecifications[0].OutputPath);
 }
		public void NoFixtureNameProvided()
		{
			ConsoleOptions options = new ConsoleOptions( "-fixture:", "nunit.tests.dll" );
			Assert.IsFalse(options.Validate());
		}
예제 #21
0
 public void TimeoutCausesErrorIfValueIsNotInteger()
 {
     ConsoleOptions options = new ConsoleOptions("tests.dll", "-timeout:abc");
     Assert.False(options.Validate());
     Assert.AreEqual(-1, options.DefaultTimeout);
 }
예제 #22
0
        public void CanRecognizeStringOptions(string propertyName, string pattern, string[] goodValues, string[] badValues)
        {
            string[] prototypes = pattern.Split('|');

            PropertyInfo property = GetPropertyInfo(propertyName);
            Assert.AreEqual(typeof(string), property.PropertyType);

            foreach (string option in prototypes)
            {
                foreach (string value in goodValues)
                {
                    string optionPlusValue = string.Format("--{0}:{1}", option, value);
                    ConsoleOptions options = new ConsoleOptions(optionPlusValue);
                    Assert.True(options.Validate(), "Should be valid: " + optionPlusValue);
                    Assert.AreEqual(value, (string)property.GetValue(options, null), "Didn't recognize " + optionPlusValue);
                }

                foreach (string value in badValues)
                {
                    string optionPlusValue = string.Format("--{0}:{1}", option, value);
                    ConsoleOptions options = new ConsoleOptions(optionPlusValue);
                    Assert.False(options.Validate(), "Should not be valid: " + optionPlusValue);
                }
            }
        }
		public void InvalidOption()
		{
			ConsoleOptions options = new ConsoleOptions( "-asembly:nunit.tests.dll" );
			Assert.IsFalse(options.Validate());
		}
예제 #24
0
        public void ResultOptionWithFilePathAndFormat()
        {
            ConsoleOptions options = new ConsoleOptions("tests.dll", "-result:results.xml;format=nunit2");
            Assert.True(options.Validate());
            Assert.AreEqual(1, options.InputFiles.Count, "assembly should be set");
            Assert.AreEqual("tests.dll", options.InputFiles[0]);

            OutputSpecification spec = options.ResultOutputSpecifications[0];
            Assert.AreEqual("results.xml", spec.OutputPath);
            Assert.AreEqual("nunit2", spec.Format);
            Assert.Null(spec.Transform);
        }
		public void InvalidCommandLineParms()
		{
			ConsoleOptions options = new ConsoleOptions( "-garbage:TestFixture", "-assembly:Tests.dll" );
			Assert.IsFalse(options.Validate());
		}
예제 #26
0
 public void FileNameWithoutResultOptionLooksLikeParameter()
 {
     ConsoleOptions options = new ConsoleOptions("tests.dll", "results.xml");
     Assert.True(options.Validate());
     Assert.AreEqual(0, options.ErrorMessages.Count);
     Assert.AreEqual(2, options.InputFiles.Count);
 }
		public void XmlParameterWithoutFileNameIsInvalid()
		{
			ConsoleOptions options = new ConsoleOptions( "tests.dll", "-xml:" );
			Assert.IsFalse(options.Validate());			
		}
예제 #28
0
 public void ResultOptionWithoutFileNameIsInvalid()
 {
     ConsoleOptions options = new ConsoleOptions("tests.dll", "-result:");
     Assert.False(options.Validate(), "Should not be valid");
     Assert.AreEqual(1, options.ErrorMessages.Count, "An error was expected");
 }