All notable changes to this project will be documented in this file.
- Script templates:
- Test.cs
- test.gd
- TestFull.cs
- test_full.gd
- Classes:
- Mock.cs
- CallRecord.cs
- Assertions:
- ConfirmInstanceOf
- ConfirmNotInstanceOf
- Script test.sh.
- Library allowing to mock interfaces and classes.
- Updated documentation:
- Added note in TESTING.md about script templates & mocking library.
- Added info about mocking libary in README.md.
- '>' character from test output.
- Script run_tests.sh.
- [#213] [GDScript] Method names in verbose mode display "([])" when there are no arguments
- [#216] [GDScript]
System.IO.DirectoryNotFoundException
thrown when passing invalid path to '--confirma-gd-path'. - [#221] [GDScript] An error is thrown when path to GDScript tests is empty.
- [#221] [GDScript] An incorrect error is thrown when path to GDScript tests is invalid.
- Arguments:
- '--confirma-category'
- '--confirma-disable-orphans-monitor'
- Formatters:
- AutomaticFormatter
- DefaultFormatter
- NumericFormatter
- StringFormatter
- CollectionFormatter
- Wrappers for C# assertions for GDScript:
- ConfirmEqualWrapper
- ConfirmArrayWrapper
- ConfirmRangeWrapper
- ConfirmSignalWrapper
- ConfirmStringWrapper
- ConfirmVectorWrapper
- ConfirmBooleanWrapper
- ConfirmNumericWrapper
- ConfirmDictionaryWrapper
- C# classes:
- WrapperBase
- GdScriptInfo
- Settings
- ConfirmaBotomPanelOptions
- AssertionMessageGenerator
- CollectionHelper
- Formatter
- TreeContent
- GDScript classes:
- TestClass
- Ignore
- RunTarget
- Support for lifecycle methods in GDScript:
- after_all
- before_all
- set_up
- tear_down
- category
- ignore
- Documentation for:
- settings
- testing GDScript code
- custom assertions
- Project settings:
- GDScript Tests Folder
- Output Path
- Bottom panel settings:
- [#178] Allow changing category.
- Allow disabling parallelization.
- Allow disabling orphans monitor.
- Allow disabling parallelization.
- Allow changing output type & path.
- Warning when trying to run tests without '--confirma-run' argument.
WhenNotRunningCategory
value toEIgnoreMode
enum.HideFromResults
field toIgnore
attribute.IFormatter
interface.- Constructor to
ConfirmAssertException
which automatically generates a message. ELifecycleMethodName
enum.- A clear distinction between C# and GDScript tests when displaying results.
- New bottom panel settings window.
- Base class for lifecycle attributes (
LifecycleAttribute
). - Allow to disable exterior brackets (
CollectionHelper.ToString
). LifecycleMethodException
exception.- Overload of
TestResult
's+
attribute forTestMethodResult
. - Support for non-static test classes.
- Included 'scripts' folder in exported ZIP.
- Documentation has been refreshed (more information, better described).
- Adjusted most of the assertion messages.
- Adjusted GDScript assertions to use C# wrappers.
- [#170] Recursively check every folder for GDScript tests (max depth is 16).
- All GDScript test classes need to extend
TestClass
. GdTestDiscovery
&GdTestExecutor
now useGdScriptInfo
instead ofScriptInfo
.- GDScript tests folder can be passed as global or localized path.
Print
andPrintLine
methods fromLog
class support list of arguments.- Moved verbose switch to new settings window.
- From now on, lifecycle attributes are assigned to a class, and not to a specific method, and take the name of the method to run. One attribute of a given type is allowed.
- Replaced
ArrayHelper.ToString
withCollectionHelper.ToString
. - [#188] Failed invocation of lifecycle method results in test failure.
- Orphans monitor is no longer considered experimental and is enabled by default.
ConfirmaBottomPanelOptions
usesTreeContent
for generating window content.
GdAssertionFailed
signal.LifecycleMethodData
record.ArrayHelper
class.ArrayHelperTest
Test.- '--experimental-monitor-orphans' argument.
- Empty argument '--confirma-method' was allowed when argument '--confirma-run' was also empty.
- Not every GDScript test is shown in results.
NullReferenceException
when there is not GDScript tests.- Confirma run tests and closes immediately after start instead of launching the game.
- [Experimental] Information about number of orphans.
- [Experimental] Detecting when orphans are created.
- [Experimental] Running tests written in GDScript.
- 'GdAssertionFailed' signal to ConfirmaAutoload.
- Arguments:
- "--confirma-disable-cs" to disable C# tests.
- "--confirma-disable-gd" to disable GDScript tests.
- "--confirma-gd-path" to specify path with GDScript tests.
- "--confirma-output" specifies how to return test result information.
- "--confirma-output-path" specifies the path in which to create a report of the tests performed.
- Classes:
- ScriptInfo
- TestManager
- CsTestExecutor
- GdTestDiscovery
- TestLog
- Json
- EnumHelper
- Assertions for GDScript:
- confirm.gd
- confirm_boolean.gd
- confirm_array.gd
- ITestExecutor interface.
- "Run C# Tests" and "Run GDScript Tests" buttons to editor bottom panel.
- ScriptMethodInfo, ScriptMethodReturnInfo & ScriptMethodArgumentsInfo records.
- TestLog list in TestResult and TestClassResult records.
- EscapeInvisibleCharacters string extension.
- Enums:
- ELogType
- ELogOutputType
- ERunTargetType
- Alternative JSON output of test results.
- Total number of test classes to TestResult record.
- RunTarget struct and added it to TestsProps struct.
- Color.TerminalReset is now static readonly field.
- Moved TestsExecutionStarted/Finished signals to TestRunner.
- The "Run All Tests" button is no longer available when tests are executed.
- Minor changes in exceptions messages.
- Code style improvements.
- Minor optimizations.
- Improved independence from culture.
- Renamed:
- TestDiscovery -> CsTestDiscovery
- TestBottomPanel -> ConfirmaBottomPanel
- Class names are colored to help distinguish classes from tests.
Log.Print
prints to the stdio by default.- Methods in
Log
andColors
are generic. - Errors from
Log.PrintError
are printed to stderr instead of stdout. - Argument '--confirma-method' no longer allows empty value.
- TestExecutor.cs
- TestOutput.cs
- Argument "--confirma-quit".
ClassName
&MethodName
from TestsProps.cs.
- Resource leak on Godot editor exit.
- Parallelizable tests log is out of order.
- Printed newline characters in arguments messes up the output.
ConfirmEqual
/ConfirmNotEqual
for arrays passed as object in case of an exception returns only the type instead of the actual values.Log.Print
throws exception when used too early.- Argument '--confirma-run' with invalid class name throws a NullReferenceException.
- Confirma can operate from a location other than the default.
- Single tests are run twice.
- Issues occur when adding Confirma to the bottom panel of the editor when starting Godot.
- '--confirma-method' argument allowing to run a single method.
- Flag to Repeat attribute to stop repeating after the first failed test.
- Confirma uses invariant culture when working with strings & numbers.
- TestDiscovery class is now static.
- Renamed protected '_autoload' & '_output' fields to 'Autoload' & 'Output'.
- Repeat field in TestCase is now of type RepeatAttribute and not ushort.
- Extensions:
- NextDouble
- NextElement
- NextElements
- NextShuffle
- NextChar
- NextLowerChar
- NextUpperChar
- NextDigitChar
- NextString
- ConfirmLowercase
- ConfirmUppercase
- Extensions:
- ConfirmIsOdd
- ConfirmIsEven
- ConfirmCloseTo
- Extension classes:
- RandomEnumExtensions
- RandomBooleanExtensions
- RandomNetworkExtensions
- Confirm class with assertions:
- IsEnumValue
- IsNotEnumValue
- IsEnumName
- IsNotEnumName
- IsTrue
- IsFalse
- Throws
- NotThrows
- Addon icon.
- Numeric extensions now use 'INumber' generic constraint instead of 'IComparable, IConvertible, IComparable, IEquatable'.
- ConfirmMatchesPattern
- Extensions:
- ConfirmSign
- ConfirmMatchesPattern
- ConfirmThrowsWMessage
- ConfirmNotThrowsWMessage
- ConfirmDoesNotMatchPattern
- Extension classes:
- ConfirmUuidExtensions
- ConfirmEventExtensions
- ConfirmActionExtensions
- ConfirmDateTimeExtensions
- ConfirmReferenceExtensions
- Simple library for generating random:
- Numbers
- UUIDs
- Assertion chaining.
- Repeat attribute.
- Improved default messages.
- Typo in ConfirmRangeExtensions.
- Parallel execution of tests has been improved, significantly increasing performance.
- Message parameter to all extensions.
- Ignore attribute now accepts EIgnoreMode enum which allows ignoring class/method always or when ran from editor.
- Improved display of passed parameters to the methods.
- Improved default exception messages.
- Static Global class which simplifies access for the tests to the scene tree.
- Assertions for IEnumerable & attributes.
- Simplified checking if Action/Func throws an exception.
- Default, more concise way of displaying information in the terminal.
- Allow running tests in verbose mode via editor.
- '--confirma-verbose' argument.
- '--confirma-sequential' argument.
- The old way of displaying information is available under the '--confirma-verbose' argument.
- Moved extensions from Confirma namespace to Confirma.Extensions.
- TestRunner in editor doesn't work.
- 'Node not found: "/root/Confirma"' error in the editor when starting the project.
- '--confirma-exit-on-failure' argument.
- run_tests.sh script.
- Classes:
- Converter
- VectorExtensions
- VariantExtensions
- ConfirmFileExtensions
- ConfirmVectorExtensions
- ConfirmSignalExtensions
- ConfirmNumericExtensions
- ConfirmDictionaryExtensions
- String extensions:
- ConfirmNotHasLength
- ConfirmEqualsCaseInsensitive
- ConfirmNotEqualsCaseInsensitive
- Moved ConfirmAssert exception to Confirma.Exceptions namespace.
Initial release.
Start of the project.