NUnitLite Version 1.0 - September 13, 2013 NUnitLite is a small-footprint implementation of much of the current NUnit framework. It is distributed in source form and is intended for use in situations where NUnit is too large or complex. In particular, it targets mobile and embedded environments as well as testing of applications that require "embedding" the framework in another piece of software, as when testing plugin architectures. This file provides basic information about NUnitLite. For more info see the NUnitLite web site at http://nunitlite.com. COPYRIGHT AND LICENSE NUnitLite is Copyright 2004-2013, Charlie Poole and is licensed under the MIT license. A copy of the license is distributed with the program in the file LICENSE.txt and is also available at http://www.opensource.org/licenses/mit-license.php. NUnitLite is based on ideas in NUnit, but not on the NUnit implementation. In addition, some code developed in NUnitLite was subsequently contributed to the NUnit project, where it is available under the NUnit license. Subsequently, some (but not all) of the newer NUnit features were ported back to NUnitLite. ATTRIBUTES NUnitLite supports most of the same attributes as NUnit 2.6.2. CategoryAttribute CombinatorialAttribute CultureAttribute DatapointAttribute DatapointsAttribute DescriptionAttribute ExpectedExceptionAttribute ExplicitAttribute IgnoreAttribute MaxTimeAttribute PairwiseAttribute PlatformAttribute PropertyAttribute RandomAttribute RangeAttribute SequentialAttribute SetCultureAttribute (not available on compact framework) SetUICultureAttribute (not available on compact framework) SetUpAttribute TearDownAttribute TestAttribute TestCaseAttribute TestCaseSourceAttribute TestFixtureAttribute TestFixtureSetUpAttribute TestFixtureTearDownAttribute TheoryAttribute TimeoutAttribute ValuesAttribute ValueSourceAttribute ASSERTS The programmer expresses expected test conditions using the Assert class. The existing functionality of most current NUnit Assert methods is supported, but the syntax has been changed to use the more extensible constraint-based format. The following methods are supported: Assert.Pass Assert.Fail Assert.Ignore Assert.Inconclusive Assert.That Assert.ByVal Assert.Throws Assert.DoesNotThrow Assert.Catch Assert.Null Assert.NotNull Assert.True Assert.False Assert.AreEqual Assert.AreNotEqual Assert.AreSame Assert.AreNotSame ASSUMPTIONS The programmer may express assumptions in the test using Assume.That() A failure in Assume.That causes an Inconclusive result. CONSTRAINTS NUnitLite supports most of the same built-in constraints as NUnit. Users may also derive custom constraints from the abstract Constraint class. The following built-in constraints are provided: AllItemsConstraint AndConstraint AssignableFromConstraint AssignableToConstraint AttributeConstraint AttributeExistsConstraint BinarySerializableConstraint (not available on compact framework) CollectionContainsConstraint CollectionEquivalentConstraint CollectionOrderedConstraint CollectionSubsetConstraint ContainsConstraint DelayedConstraint EmptyCollectionConstraint EmptyConstraint EmptyDirectoryConstraint EmptyStringConstraint EndsWithConstraint EqualConstraint ExactCountConstraint ExactTypeConstraint ExceptionTypeConstraint FalseConstraint GreaterThanConstraint GreaterThanOrEqualConstraint InstanceOfTypeConstraint LessThanConstraint LessThanOrEqualConstraint NaNConstraint NoItemConstraint NotConstraint NullConstraint NullOrEmptyStringConstraint OrConstraint PredicateConstraint PropertyConstraint PropertyExistsConstraint RangeConstraint RegexConstraint (not available on compact framework) ReusableConstraint SameAsConstraint SamePathConstraint SamePathOrUnderConstraint SomeItemsConstraint StartsWithConstraint SubPathConstraint SubstringConstraint ThrowsConstraint ThrowsNothingConstraint TrueConstraint UniqueItemsConstraint XmlSerializableConstraint (not available on compact framework 1.0) Although constraints may be created using their constructors, the more usual approach is to make use of one or more of the NUnitLite SyntaxHelpers. The following helpers are provided: Is: Not, All, Null, True, False, Positive, Negative, NaN, Empty, Unique, EqualTo, SameAs, GreaterThan, GreaterThanOrEqualTo, LessThan, LessThanOrEqualTo, AtLeast, AtMost, TypeOf, InstanceOf, AssignableFrom, AssignableTo, StringContaining, StringStarting, StringEnding, StringMatching, EquivalentTo, SubsetOf, BinarySerializable, XmlSerializable, Ordered, SamePath, SamePathOrUnder, InRange Contains: Substring, Item Has: No, All, Some, None,Exactly, Property, Length, Count, Message, InnerException, Member, Attribute Tests are loaded as a tree structure of suites, fixtures and test cases. Each fixture contains it's tests. Tests are executed in the order found, without any guarantees of ordering. A separate instance of the fixture object is created for each test case executed by NUnitLite. The embedded console runner produces a summary of tests run and lists any errors or failures. It can also save an XML representation of the test results. USAGE NUnitLite is not "installed" in your system. Instead, you should include nunitlite.dll in your project. Your test assembly should be an exe file and should reference the nunitlite assembly. If you place a call like this in your Main new TextUI().Execute(args); then NUnitLite will run all the tests in the test project, using the args provided. Use -help to see the available options. DOCUMENTATION NUnitLite uses the NUnit.Framework namespace, which allows relatively easy portability between NUnit and NUnitLite. Currently, there is no separate set of documentation for NUnitLite so you should use the docs for NUnit 2.6 or later in conjunction with the information in this file.