Revision: 1222f9b14229
Author: Mikko Korpela <[email protected]>
Date: Tue Jul 26 05:43:48 2011
Log: Moving final notes
http://code.google.com/p/robotframework/source/detail?repo=wiki&r=1222f9b14229
Added:
/ReleaseNotes26
Deleted:
/FinalReleaseNotes26.wiki
=======================================
--- /dev/null
+++ /ReleaseNotes26 Tue Jul 26 05:43:48 2011
@@ -0,0 +1,368 @@
+#summary Release notes for Robot Framework 2.6 series
+
+<wiki:toc max_depth="2"/>
+
+= Robot Framework 2.6 =
+
+Robot Framework 2.6 is a new major release with loads of bigger
+and smaller enhancements and bug fixes. It was released after several
+[PreviewReleases26 preview releases] on Tuesday 2011-07-26.
+
+Questions and comments related to the
+release can be sent to the [MailingLists mailing lists] and possible
+bugs submitted to
+the [http://code.google.com/p/robotframework/issues issue tracker].
+
+== Downloads and installation ==
+
+Installers and other packages are available on the
+[http://code.google.com/p/robotframework/downloads/list download page].
+
+You can follow the normal [Installation installation instructions]
+when installing RF 2.6 releases. If you have an earlier Robot version
installed
+it should be safe to install over it. Removing the old version first is
always
+safer, though, and should always be done if installation fails somehow.
+
+== Compatibility with RIDE and Mabot ==
+
+Robot Framework 2.6 should be fully compatible with the earlier
+[http://code.google.com/p/robotframework-ride/ RIDE] and
+[http://code.google.com/p/robotframework-mabot/ Mabot] releases.
+
+== Compatibility with outputs generated with RF 2.5 ==
+
+Robot Framework 2.6 can read and process outputs generated by
+2.5.x. releases. This allows testing the enhanced log and report (see
+below) also without executing tests using 2.6. All you need to do is
+get the output file (such as `ouput.xml`) and generate logs and
+reports based on it with `rebot`.
+
+= Most important enhancements and new features =
+
+== Better log file performance ==
+
+The biggest enhancement in this release is making the performance
+of the log files better when the number of test cases and test data
+increases (issue 360).
+
+This enhancement is implemented so that when you open the log file it is
+not loaded into the browsers memory fully but generated dynamically using
+Javascript (and wonderful [http://jquery.com/ jQuery]) as you drill down to
+more details. This both makes the log files' size on a disk much smaller
+(in one case a log file that used to be 120MB is now 9MB) and also reduces
+browsers' memory consumption dramatically (the earlier log file performed
+flawlessly on a browser).
+
+Creating the log files dynamically allows also interesting enhancements
+in the future. Possible ideas include searching test cases and setting
+log level. In RF 2.6 the log files should look pretty much like the ones
+we all have got used to in previous releases, though.
+
+== Transparent log splitting ===
+
+A common problem when the number of test cases increases is that log
+files gets too big. They do not open nicely into browsers anymore and
+if they are on a remote machine downloading them takes too much time.
+
+In RF 2.5 and earlier this problem was solved with a functionality to
+split both log files and output files (`--splitoutputs` option) from a
+predefined level. This
+[#Splitting_outputs_is_not_supported_anymore functionality was removed]
+early during 2.6 development because it never worked that well and it
+was incompatible with the new log generation system discussed above.
+
+Although the new logs are order of magnitude smaller than earlier,
+some log splitting functionality was still needed with very large test
+suites. The new approach introduced in RF 2.6 (issue 898) is splitting
+the log into smaller files that can be loaded dynamically when
+needed. This approach has two huge benefits:
+
+ * Main log file size stays small (log from Robot Framework's own
acceptance tests with 2000+ tests is about 0.6MB).
+ * Because the data is loaded dynamically, users do not see any
difference compared to the situation where logs are not split.
+
+The main drawback is that the overall size taken by the log file
+increases. In practice this should not matter too much because not all
+the data needs to be loaded into a browser, disk space is pretty cheap,
+and the logs in 2.6 are otherwise so small compared to the old logs.
+
+Another drawback is that copying log files or otherwise manipulating
+them after the execution gets a bit more complicated when a log file has
been splitted because you have
+lot of small files. Technically data from each test and suite
+setup/teardown is written into a separate Javascript file and the
+number of files grows when the number of tests grows. The files have
+name in format `'log-42.js'` where `'log'` changes depending on the
+actual name of the log file and `'42'` is a growing index.
+
+The new mechanism is transparent for users viewing the log file but it
+still needs to be enabled with `--splitlog` option when tests are run
+or results post-processed with `rebot`.
+
+== Enhanced and better performing report ==
+
+In RF 2.6 also report files are generated dynamically and are thus
+smaller and have better performance than earlier. In addition to that,
+reports have also got some new functionality.
+
+The smaller size (in one case from 9MB to 0.4MB) and faster opening
+time are due to reports not showing test cases automatically but instead
+having an easy way to select what you actually want to see. Old test
details
+by suite and test details by tag tables have been removed and replaced
+with dynamically generated tables that show the same information (issue
849).
+In addition to these views being accessible from the statistics table
+like the removed tables in earlier releases, you also have drop-down menus
+where you can select which suite or tag to show.
+
+A totally new functionality in reports is having a view where
+all tests or all critical tests can be seen (issue 863). Tests in these
+views are sorted so that failed tests are first (similarly as when viewing
+tests by tag) so it is very easy to see all failed or all failed critical
+tests in one place. These views are also accessible from the statistics
table.
+
+The screenshot below is from the
[http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#report-file
User Guide]
+that also contains a live version of the same report.
+
+http://robotframework.googlecode.com/hg/doc/userguide/src/ExecutingTestCases/report_passed.png
+
+== Keyword teardown functionality ==
+
+Robot Framework has always had test and suite level setups and teardowns,
+but nowadays also individual user keywords can have their own teardowns
+(issue 711). The mechanism of this new feature is very simple, the keyword
+teardown is executed both when the keyword passes and when it fails.
+
+Keyword teardowns allow, for example, splitting a large test teardown
+into more fine-grained teardowns that are executed closer to the activity
+that needs to be cleaned up. Another good use case is with test templates
+(a new feature in [ReleaseNotes25 RF 2.5]) where
+the system should be in a known state after every repeated step.
+
+Using keyword teardown and test templates is illustrated by the example
+below. It shows a different approach to create invalid login cases from the
+[http://code.google.com/p/robotframework-seleniumlibrary/wiki/Demo
SeleniumLibrary demo]:
+
+{{{
+ ***Settings***
+ Test Setup Open login page
+ Test Template Login with invalid credentials should fail
+ Test Teardown Close browser
+ Resource common_resource.txt
+
+ ***Test Cases***
+ Invalid login
+ ${VALID USER} invalid
+ invalid ${VALID PASSWORD}
+ invalid invalid
+ ${VALID USER} ${EMPTY}
+ ${EMPTY} ${VALID PASSWORD}
+ ${EMPTY} ${EMPTY}
+
+ ***Keywords***
+ Login with invalid credentials should fail
+ [Arguments] ${username} ${password}
+ Input user name ${username}
+ Input password ${password}
+ Submit credentials
+ Welcome page should be open
+ [Teardown] Navigate to login page
+}}}
+
+Notice that keyword teardown functionality is currently not supported
+by [http://code.google.com/p/robotframework-ride/ RIDE].
+
+== New logging APIs and other logging enhancements ==
+
+Robot Framework 2.6 has its own Python API for logging
+(`robot.api.logger` module) (issue 339) and it also supports Python's
+standard [http://docs.python.org/library/logging.html logging] module
+(issue 455). These APIs make both make logging cleaner than using the
+standard output and also provide nice functionality such as accurate
+timestamps. They are explained more thoroughly, and with examples, in
+the
+[http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#public-logging-api
User
Guide].
+
+Another logging related enhancement is that libraries can embed
+accurate timestamp into the messages logged through stdout/stderr
+(issue 456). Python based libraries are probably better of using the
+new logging APIs, but this enhancement adds timestamp support also for
+Java based libraries as well as for libraries that utilize the
+[RemoteLibrary remote interface].
+
+Finally, messages logged during library initialization are nowadays
written into the syslog (issue 892).
+
+== Support for custom regexps with embedded argument syntax ==
+
+The
[http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#embedding-arguments-into-keyword-name
embedded argument syntax]
+nowadays supports using a custom regular expression to match the used
+arguments (issue 854). This is especially useful to prevent name
+collisions with keywords having similar names.
+
+= Backwards incompatible changes =
+
+== Viewing logs and reports requires a modern browser ==
+
+Logs and reports nowadays use Javascript and CSS styles that only work
+well in modern browsers. Firefox 3.5, IE 8, or equivalent is required,
+but newer browsers are recommended. Most notable IE 6 and IE 7
+are not supported at all.
+
+Newer browsers, such as Firefox 4 and Google Chrome 12, have blazingly
+fast Javascript engines and they can easily view even very large log
+files. Upgrading your browser may thus be a good idea even if you can open
+logs and reports with your old browser.
+
+Viewing in Excel is not supported anymore. You can still copy statistics
and other results from logs and reports to Excel, though.
+
+If your company policy prevents you from upgrading IE or using
+alternative browsers, you can always keep on using older Robot
+Framework versions.
+
+== !IronPython is currently not supported ==
+
+Unfortunately Robot Framework 2.6 does not work with
+[DotNetSupport IronPython].
+You can use Robot Framework 2.5.7 with !IronPython until we manage
+work around the incompatibilities listed in issue 917.
+
+== Splitting outputs is not supported anymore ==
+
+The earlier explained big
+[#Better_log_file_performance log file performance enhancements]
+unfortunately completely broke the old output splitting functionality
+(issue 861). Fixing splitting so that it would work like it worked
+earlier would have been a really big task.
+
+Outputs have been split mainly to make log files smaller by splitting
+them into pieces that should not grow too big. Because the old
+approach never worked too well (see e.g. issue 386 and issue 862), a
+decision was made to rather implement new
+[#Transparent_log_splitting log splitting approach].
+
+In RF 2.6 using `--splitoutputs` option gives you a warning and in RF
+2.7 the option will be removed altogether. New `--splitlog` option
+should be used instead.
+
+== Summary reports were removed ==
+
+As explained above, reports in Robot Framework 2.6
+[#Enhanced_and_better_performing_report do not have tests open when you
open them]
+and in practice they look a lot like the old summary reports. Because
reports
+are generated dynamically, their size is also very small.
+
+Because summary reports did not provide any value anymore they were
+removed (issue 864).
+
+== `testdoc.py` tool does not work currently ==
+
+Unfortunately
[http://code.google.com/p/robotframework/wiki/TestDataDocumentationTool
testdoc.py tool] is not compatible with RF 2.6 (issue 908). Hopefully this
useful tool can be fixed already in 2.6.1.
+
+== Many internal APIs have changed ==
+
+There are lot of internal changes in a big release like this and some of
the changes may affect libraries or tools that are dependent on the
internal APIs. The most important changes are listed in issue 907.
+
+== Deprecated keywords and arguments were removed ==
+
+Following earlier deprecated keywords or arguments have been removed:
+
+ * `deprecated_absolute` argument from `List Directory` keywords (issue
506)
+ * `Create File With Encoding` keyword (issue 507)
+ * `Set Screenshot Directory` and `log_file_directory` argument from
ScreenshotLibrary (issue 733).
+
+== Other possible backwards incompatible changes ==
+
+ * It is not possible to fully remove tag statistics and suite statistics
tables from reports (issue 877).
+ * `<test>` tag in XML output does not contain `critical` attribute
anymore (issue 821).
+ * If a listener method fails, it is not called anymore (issue 832).
+ * Integer variables like `${42}` nowadays have `int` type and not `long`.
+ * Some errors that used to be uncatchable are now normal errors (issue
736).
+ * The syntax for custom regexps with embedded arguments (issue 854)
causes problems if your embedded arguments have `:` in their name. This
should not be too common.
+
+= Deprecated features =
+
+The only deprecated feature in RF 2.6 is that old screenshot taking
keywords
+have been deprecated (issue 733).
+
+= Acknowledgements =
+
+Very big thanks to the
+[http://sourceforge.net/projects/jsxgraph JSXGraph]
+project for creating and releasing the
+[http://jsxgraph.uni-bayreuth.de/wp/2009/09/29/jsxcompressor-zlib-compressed-javascript-code
JSXCompressor]
+module.
+One reason new logs and reports are so small is that all larger
+strings are compressed using the [http://zlib.org zlib] algorithm
+and then uncompressed on-demand in the browser using this great module.
+
+Special thanks to Alfred Wassermann for making JSXCompressor available
+also under the Apache 2 license so that it was easier for us to
+include it.
+
+Big thanks also to all [http://jquery.com/ jQuery] developers for
+making Javascript development a joy.
+
+Thanks to Imran for providing a great patch to issue 897 and for actively
+testing the preview releases. Thanks also to all others who have tested
+alphas, betas, and release candidates!
+
+= Full list of fixes and enhancements in 2.6 =
+
+|| *ID* || *Type* || *Priority* || *Summary* ||
+|| Issue 360 || Enhancement || Critical || Possibility to view log file
without loading it into memory fully ||
+|| Issue 898 || Enhancement || Critical || Transparent log splitting
option ||
+|| Issue 861 || Defect || High || Splitting outputs is not compatible with
new logs and must be removed ||
+|| Issue 863 || Defect || High || Not always easy to see all failed tests
and all failed critical tests in report ||
+|| Issue 339 || Enhancement || High || Provide logging facility for
developers of Robot Framework Extension Libraries ||
+|| Issue 455 || Enhancement || High || Support for Python standard
`logging` module ||
+|| Issue 711 || Enhancement || High || Keyword teardown functionality ||
+|| Issue 824 || Enhancement || High || Faster and more memory efficient
log and report generation when running tests ||
+|| Issue 849 || Enhancement || High || It should be possible to select
tests that are shown in report to make its size smaller ||
+|| Issue 854 || Enhancement || High || Regular expression support for
embedded argument syntax ||
+|| Issue 822 || Defect || Medium || Cannot import two libraries with same
name using physical path ||
+|| Issue 827 || Defect || Medium || Dynamic keywords ignored if getting
documentation or arguments fails ||
+|| Issue 832 || Defect || Medium || Execution crashes if listener method
`message` fails repeatingly ||
+|| Issue 860 || Defect || Medium || Dry-run mode fails if embedded
arguments contain dynamically set variables ||
+|| Issue 894 || Defect || Medium || Docstrings with non-ASCII characters
don't work correctly (unless they are Unicode) ||
+|| Issue 899 || Defect || Medium || Links from report are not guaranteed
to be unique ||
+|| Issue 900 || Defect || Medium || `Run Keyword And Continue On Failure`
does not work with user keywords inside FOR loop ||
+|| Issue 109 || Enhancement || Medium || `Should (Not) Be Equal As
Numbers` and `Convert To Number` should take precision as an optional
argument ||
+|| Issue 456 || Enhancement || Medium || Possibility to get accurate
timestamp when logging messages through stdout ||
+|| Issue 680 || Enhancement || Medium || Allow accessing JVM properties in
test data using format %{property.name} ||
+|| Issue 736 || Enhancement || Medium || Uncatchable syntax errors should
be turned into normal failures when possible ||
+|| Issue 767 || Enhancement || Medium || Callling `sys.exit()` only when
it is certain that Robot is executed from the command line ||
+|| Issue 802 || Enhancement || Medium || Command line option
`--RunEmptySuite` to allow execution even if there are no tests ||
+|| Issue 807 || Enhancement || Medium || It should be possible to disable
Remote servers' `Stop Remote Server` keyword ||
+|| Issue 808 || Enhancement || Medium || `Should (Not) Be Equal As
Integers` and `Convert To Integer` should accept also hex, octal and binary
numbers ||
+|| Issue 821 || Enhancement || Medium || Remove `critical` attribute from
opening `<test>` tag in XML ||
+|| Issue 829 || Enhancement || Medium || Add option to disable output.xml |
|
+|| Issue 835 || Enhancement || Medium || Integer variables should accept
`0b` (binary), `0o`, (octal) and `0x` (hex) prefixes like `${0xFF}` ||
+|| Issue 836 || Enhancement || Medium || `Convert To Binary/Octal/Hex`
keywords to `BuiltIn` library ||
+|| Issue 844 || Enhancement || Medium || Possibility to get variable value
with default value to be used when it does not exist (`Get Variable Value`
keyword) ||
+|| Issue 859 || Enhancement || Medium || Additional listener attributes to
differentiate suite/test setup/teardown from other keywords. ||
+|| Issue 864 || Enhancement || Medium || Remove summary reports because
they are not needed after enhancements to normal reports ||
+|| Issue 875 || Enhancement || Medium || Always visible link from report
to log and from log to report ||
+|| Issue 892 || Enhancement || Medium || Messages logged by libraries when
they are imported and initialized should go to syslog ||
+|| Issue 896 || Enhancement || Medium || New `BuiltIn` keyword `Keywords
Should Exist` ||
+|| Issue 897 || Enhancement || Medium || Add name of the possible template
to `start/end_test listener` methods ||
+|| Issue 909 || Enhancement || Medium || Add option to `Collections.Lists
Should be Equal` to name indices ||
+|| Issue 889 || Documentation || Medium || Document that Easy Install by
default installs latest version even if that is alpha/beta/rc ||
+|| Issue 907 || Refactoring || Medium || Internal APIs have changed ||
+|| Issue 873 || Defect || Low || Suite name from directory that has '.' in
name is parsed wrong ||
+|| Issue 883 || Defect || Low || Not possible to assign doc or links for
combined tag statistics ||
+|| Issue 891 || Defect || Low || User keyword timeout is not shown in the
log ||
+|| Issue 906 || Defect || Low || `metadata` attribute missing from
`end_suite` listener method ||
+|| Issue 307 || Enhancement || Low || Paths should not be case-normalized |
|
+|| Issue 506 || Enhancement || Low || Remove `deprecated_absolute`
argument from `List Directory` keywords ||
+|| Issue 507 || Enhancement || Low || Remove the deprecated `Create File
With Encoding` keyword ||
+|| Issue 733 || Enhancement || Low || Deprecate old screenshot taking
keywords and remove deprecated `log_file_directory` argument and `Set
Screenshot Directories` keyword ||
+|| Issue 834 || Enhancement || Low || Integer variables like `${42}`
should create `int` type not `long` ||
+|| Issue 846 || Enhancement || Low || Tag stat links should be serialized
to XML ||
+|| Issue 877 || Enhancement || Low || Always show tag statistics and suite
statistics tables in logs an reports ||
+|| Issue 884 || Enhancement || Low || Tag stat link titles should support
replaced groups similarly as tag stat link urls ||
+|| Issue 905 || Enhancement || Low || Add `critical` attribute to
`start/end_test` listener methods ||
+|| Issue 813 || Documentation || Low || Document that Python libraries can
messages to console using `sys.__stdout__` ||
+|| Issue 839 || Documentation || Low || Online version of the Quick Start
Guide should explain how to get it ||
+|| Issue 848 || Documentation || Low || Document that if same variable is
given multiple times from CLI the last value takes effect ||
+|| Issue 850 || Documentation || Low || Document how to use list variables
with length related keywords. ||
+|| Issue 893 || Documentation || Low || Document that libraries should
communicate with the framework only from main thread ||
+
+Altogether 57 issues.
+
=======================================
--- /FinalReleaseNotes26.wiki Tue Jul 26 05:21:58 2011
+++ /dev/null
@@ -1,368 +0,0 @@
-#summary Release notes for Robot Framework 2.6 series
-
-<wiki:toc max_depth="2"/>
-
-= Robot Framework 2.6 =
-
-Robot Framework 2.6 is a new major release with loads of bigger
-and smaller enhancements and bug fixes. It was released after several
-[PreviewReleases26 preview releases] on Tuesday 2011-07-26.
-
-Questions and comments related to the
-release can be sent to the [MailingLists mailing lists] and possible
-bugs submitted to
-the [http://code.google.com/p/robotframework/issues issue tracker].
-
-== Downloads and installation ==
-
-Installers and other packages are available on the
-[http://code.google.com/p/robotframework/downloads/list download page].
-
-You can follow the normal [Installation installation instructions]
-when installing RF 2.6 releases. If you have an earlier Robot version
installed
-it should be safe to install over it. Removing the old version first is
always
-safer, though, and should always be done if installation fails somehow.
-
-== Compatibility with RIDE and Mabot ==
-
-Robot Framework 2.6 should be fully compatible with the earlier
-[http://code.google.com/p/robotframework-ride/ RIDE] and
-[http://code.google.com/p/robotframework-mabot/ Mabot] releases.
-
-== Compatibility with outputs generated with RF 2.5 ==
-
-Robot Framework 2.6 can read and process outputs generated by
-2.5.x. releases. This allows testing the enhanced log and report (see
-below) also without executing tests using 2.6. All you need to do is
-get the output file (such as `ouput.xml`) and generate logs and
-reports based on it with `rebot`.
-
-= Most important enhancements and new features =
-
-== Better log file performance ==
-
-The biggest enhancement in this release is making the performance
-of the log files better when the number of test cases and test data
-increases (issue 360).
-
-This enhancement is implemented so that when you open the log file it is
-not loaded into the browsers memory fully but generated dynamically using
-Javascript (and wonderful [http://jquery.com/ jQuery]) as you drill down to
-more details. This both makes the log files' size on a disk much smaller
-(in one case a log file that used to be 120MB is now 9MB) and also reduces
-browsers' memory consumption dramatically (the earlier log file performed
-flawlessly on a browser).
-
-Creating the log files dynamically allows also interesting enhancements
-in the future. Possible ideas include searching test cases and setting
-log level. In RF 2.6 the log files should look pretty much like the ones
-we all have got used to in previous releases, though.
-
-== Transparent log splitting ===
-
-A common problem when the number of test cases increases is that log
-files gets too big. They do not open nicely into browsers anymore and
-if they are on a remote machine downloading them takes too much time.
-
-In RF 2.5 and earlier this problem was solved with a functionality to
-split both log files and output files (`--splitoutputs` option) from a
-predefined level. This
-[#Splitting_outputs_is_not_supported_anymore functionality was removed]
-early during 2.6 development because it never worked that well and it
-was incompatible with the new log generation system discussed above.
-
-Although the new logs are order of magnitude smaller than earlier,
-some log splitting functionality was still needed with very large test
-suites. The new approach introduced in RF 2.6 (issue 898) is splitting
-the log into smaller files that can be loaded dynamically when
-needed. This approach has two huge benefits:
-
- * Main log file size stays small (log from Robot Framework's own
acceptance tests with 2000+ tests is about 0.6MB).
- * Because the data is loaded dynamically, users do not see any
difference compared to the situation where logs are not split.
-
-The main drawback is that the overall size taken by the log file
-increases. In practice this should not matter too much because not all
-the data needs to be loaded into a browser, disk space is pretty cheap,
-and the logs in 2.6 are otherwise so small compared to the old logs.
-
-Another drawback is that copying log files or otherwise manipulating
-them after the execution gets a bit more complicated when a log file has
been splitted because you have
-lot of small files. Technically data from each test and suite
-setup/teardown is written into a separate Javascript file and the
-number of files grows when the number of tests grows. The files have
-name in format `'log-42.js'` where `'log'` changes depending on the
-actual name of the log file and `'42'` is a growing index.
-
-The new mechanism is transparent for users viewing the log file but it
-still needs to be enabled with `--splitlog` option when tests are run
-or results post-processed with `rebot`.
-
-== Enhanced and better performing report ==
-
-In RF 2.6 also report files are generated dynamically and are thus
-smaller and have better performance than earlier. In addition to that,
-reports have also got some new functionality.
-
-The smaller size (in one case from 9MB to 0.4MB) and faster opening
-time are due to reports not showing test cases automatically but instead
-having an easy way to select what you actually want to see. Old test
details
-by suite and test details by tag tables have been removed and replaced
-with dynamically generated tables that show the same information (issue
849).
-In addition to these views being accessible from the statistics table
-like the removed tables in earlier releases, you also have drop-down menus
-where you can select which suite or tag to show.
-
-A totally new functionality in reports is having a view where
-all tests or all critical tests can be seen (issue 863). Tests in these
-views are sorted so that failed tests are first (similarly as when viewing
-tests by tag) so it is very easy to see all failed or all failed critical
-tests in one place. These views are also accessible from the statistics
table.
-
-The screenshot below is from the
[http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#report-file
User Guide]
-that also contains a live version of the same report.
-
-http://robotframework.googlecode.com/hg/doc/userguide/src/ExecutingTestCases/report_passed.png
-
-== Keyword teardown functionality ==
-
-Robot Framework has always had test and suite level setups and teardowns,
-but nowadays also individual user keywords can have their own teardowns
-(issue 711). The mechanism of this new feature is very simple, the keyword
-teardown is executed both when the keyword passes and when it fails.
-
-Keyword teardowns allow, for example, splitting a large test teardown
-into more fine-grained teardowns that are executed closer to the activity
-that needs to be cleaned up. Another good use case is with test templates
-(a new feature in [ReleaseNotes25 RF 2.5]) where
-the system should be in a known state after every repeated step.
-
-Using keyword teardown and test templates is illustrated by the example
-below. It shows a different approach to create invalid login cases from the
-[http://code.google.com/p/robotframework-seleniumlibrary/wiki/Demo
SeleniumLibrary demo]:
-
-{{{
- ***Settings***
- Test Setup Open login page
- Test Template Login with invalid credentials should fail
- Test Teardown Close browser
- Resource common_resource.txt
-
- ***Test Cases***
- Invalid login
- ${VALID USER} invalid
- invalid ${VALID PASSWORD}
- invalid invalid
- ${VALID USER} ${EMPTY}
- ${EMPTY} ${VALID PASSWORD}
- ${EMPTY} ${EMPTY}
-
- ***Keywords***
- Login with invalid credentials should fail
- [Arguments] ${username} ${password}
- Input user name ${username}
- Input password ${password}
- Submit credentials
- Welcome page should be open
- [Teardown] Navigate to login page
-}}}
-
-Notice that keyword teardown functionality is currently not supported
-by [http://code.google.com/p/robotframework-ride/ RIDE].
-
-== New logging APIs and other logging enhancements ==
-
-Robot Framework 2.6 has its own Python API for logging
-(`robot.api.logger` module) (issue 339) and it also supports Python's
-standard [http://docs.python.org/library/logging.html logging] module
-(issue 455). These APIs make both make logging cleaner than using the
-standard output and also provide nice functionality such as accurate
-timestamps. They are explained more thoroughly, and with examples, in
-the
-[http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#public-logging-api
User
Guide].
-
-Another logging related enhancement is that libraries can embed
-accurate timestamp into the messages logged through stdout/stderr
-(issue 456). Python based libraries are probably better of using the
-new logging APIs, but this enhancement adds timestamp support also for
-Java based libraries as well as for libraries that utilize the
-[RemoteLibrary remote interface].
-
-Finally, messages logged during library initialization are nowadays
written into the syslog (issue 892).
-
-== Support for custom regexps with embedded argument syntax ==
-
-The
[http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html#embedding-arguments-into-keyword-name
embedded argument syntax]
-nowadays supports using a custom regular expression to match the used
-arguments (issue 854). This is especially useful to prevent name
-collisions with keywords having similar names.
-
-= Backwards incompatible changes =
-
-== Viewing logs and reports requires a modern browser ==
-
-Logs and reports nowadays use Javascript and CSS styles that only work
-well in modern browsers. Firefox 3.5, IE 8, or equivalent is required,
-but newer browsers are recommended. Most notable IE 6 and IE 7
-are not supported at all.
-
-Newer browsers, such as Firefox 4 and Google Chrome 12, have blazingly
-fast Javascript engines and they can easily view even very large log
-files. Upgrading your browser may thus be a good idea even if you can open
-logs and reports with your old browser.
-
-Viewing in Excel is not supported anymore. You can still copy statistics
and other results from logs and reports to Excel, though.
-
-If your company policy prevents you from upgrading IE or using
-alternative browsers, you can always keep on using older Robot
-Framework versions.
-
-== !IronPython is currently not supported ==
-
-Unfortunately Robot Framework 2.6 does not work with
-[DotNetSupport IronPython].
-You can use Robot Framework 2.5.7 with !IronPython until we manage
-work around the incompatibilities listed in issue 917.
-
-== Splitting outputs is not supported anymore ==
-
-The earlier explained big
-[#Better_log_file_performance log file performance enhancements]
-unfortunately completely broke the old output splitting functionality
-(issue 861). Fixing splitting so that it would work like it worked
-earlier would have been a really big task.
-
-Outputs have been split mainly to make log files smaller by splitting
-them into pieces that should not grow too big. Because the old
-approach never worked too well (see e.g. issue 386 and issue 862), a
-decision was made to rather implement new
-[#Transparent_log_splitting log splitting approach].
-
-In RF 2.6 using `--splitoutputs` option gives you a warning and in RF
-2.7 the option will be removed altogether. New `--splitlog` option
-should be used instead.
-
-== Summary reports were removed ==
-
-As explained above, reports in Robot Framework 2.6
-[#Enhanced_and_better_performing_report do not have tests open when you
open them]
-and in practice they look a lot like the old summary reports. Because
reports
-are generated dynamically, their size is also very small.
-
-Because summary reports did not provide any value anymore they were
-removed (issue 864).
-
-== `testdoc.py` tool does not work currently ==
-
-Unfortunately
[http://code.google.com/p/robotframework/wiki/TestDataDocumentationTool
testdoc.py tool] is not compatible with RF 2.6 (issue 908). Hopefully this
useful tool can be fixed already in 2.6.1.
-
-== Many internal APIs have changed ==
-
-There are lot of internal changes in a big release like this and some of
the changes may affect libraries or tools that are dependent on the
internal APIs. The most important changes are listed in issue 907.
-
-== Deprecated keywords and arguments were removed ==
-
-Following earlier deprecated keywords or arguments have been removed:
-
- * `deprecated_absolute` argument from `List Directory` keywords (issue
506)
- * `Create File With Encoding` keyword (issue 507)
- * `Set Screenshot Directory` and `log_file_directory` argument from
ScreenshotLibrary (issue 733).
-
-== Other possible backwards incompatible changes ==
-
- * It is not possible to fully remove tag statistics and suite statistics
tables from reports (issue 877).
- * `<test>` tag in XML output does not contain `critical` attribute
anymore (issue 821).
- * If a listener method fails, it is not called anymore (issue 832).
- * Integer variables like `${42}` nowadays have `int` type and not `long`.
- * Some errors that used to be uncatchable are now normal errors (issue
736).
- * The syntax for custom regexps with embedded arguments (issue 854)
causes problems if your embedded arguments have `:` in their name. This
should not be too common.
-
-= Deprecated features =
-
-The only deprecated feature in RF 2.6 is that old screenshot taking
keywords
-have been deprecated (issue 733).
-
-= Acknowledgements =
-
-Very big thanks to the
-[http://sourceforge.net/projects/jsxgraph JSXGraph]
-project for creating and releasing the
-[http://jsxgraph.uni-bayreuth.de/wp/2009/09/29/jsxcompressor-zlib-compressed-javascript-code
JSXCompressor]
-module.
-One reason new logs and reports are so small is that all larger
-strings are compressed using the [http://zlib.org zlib] algorithm
-and then uncompressed on-demand in the browser using this great module.
-
-Special thanks to Alfred Wassermann for making JSXCompressor available
-also under the Apache 2 license so that it was easier for us to
-include it.
-
-Big thanks also to all [http://jquery.com/ jQuery] developers for
-making Javascript development a joy.
-
-Thanks to Imran for providing a great patch to issue 897 and for actively
-testing the preview releases. Thanks also to all others who have tested
-alphas, betas, and release candidates!
-
-= Full list of fixes and enhancements in 2.6 =
-
-|| *ID* || *Type* || *Priority* || *Summary* ||
-|| Issue 360 || Enhancement || Critical || Possibility to view log file
without loading it into memory fully ||
-|| Issue 898 || Enhancement || Critical || Transparent log splitting
option ||
-|| Issue 861 || Defect || High || Splitting outputs is not compatible with
new logs and must be removed ||
-|| Issue 863 || Defect || High || Not always easy to see all failed tests
and all failed critical tests in report ||
-|| Issue 339 || Enhancement || High || Provide logging facility for
developers of Robot Framework Extension Libraries ||
-|| Issue 455 || Enhancement || High || Support for Python standard
`logging` module ||
-|| Issue 711 || Enhancement || High || Keyword teardown functionality ||
-|| Issue 824 || Enhancement || High || Faster and more memory efficient
log and report generation when running tests ||
-|| Issue 849 || Enhancement || High || It should be possible to select
tests that are shown in report to make its size smaller ||
-|| Issue 854 || Enhancement || High || Regular expression support for
embedded argument syntax ||
-|| Issue 822 || Defect || Medium || Cannot import two libraries with same
name using physical path ||
-|| Issue 827 || Defect || Medium || Dynamic keywords ignored if getting
documentation or arguments fails ||
-|| Issue 832 || Defect || Medium || Execution crashes if listener method
`message` fails repeatingly ||
-|| Issue 860 || Defect || Medium || Dry-run mode fails if embedded
arguments contain dynamically set variables ||
-|| Issue 894 || Defect || Medium || Docstrings with non-ASCII characters
don't work correctly (unless they are Unicode) ||
-|| Issue 899 || Defect || Medium || Links from report are not guaranteed
to be unique ||
-|| Issue 900 || Defect || Medium || `Run Keyword And Continue On Failure`
does not work with user keywords inside FOR loop ||
-|| Issue 109 || Enhancement || Medium || `Should (Not) Be Equal As
Numbers` and `Convert To Number` should take precision as an optional
argument ||
-|| Issue 456 || Enhancement || Medium || Possibility to get accurate
timestamp when logging messages through stdout ||
-|| Issue 680 || Enhancement || Medium || Allow accessing JVM properties in
test data using format %{property.name} ||
-|| Issue 736 || Enhancement || Medium || Uncatchable syntax errors should
be turned into normal failures when possible ||
-|| Issue 767 || Enhancement || Medium || Callling `sys.exit()` only when
it is certain that Robot is executed from the command line ||
-|| Issue 802 || Enhancement || Medium || Command line option
`--RunEmptySuite` to allow execution even if there are no tests ||
-|| Issue 807 || Enhancement || Medium || It should be possible to disable
Remote servers' `Stop Remote Server` keyword ||
-|| Issue 808 || Enhancement || Medium || `Should (Not) Be Equal As
Integers` and `Convert To Integer` should accept also hex, octal and binary
numbers ||
-|| Issue 821 || Enhancement || Medium || Remove `critical` attribute from
opening `<test>` tag in XML ||
-|| Issue 829 || Enhancement || Medium || Add option to disable output.xml |
|
-|| Issue 835 || Enhancement || Medium || Integer variables should accept
`0b` (binary), `0o`, (octal) and `0x` (hex) prefixes like `${0xFF}` ||
-|| Issue 836 || Enhancement || Medium || `Convert To Binary/Octal/Hex`
keywords to `BuiltIn` library ||
-|| Issue 844 || Enhancement || Medium || Possibility to get variable value
with default value to be used when it does not exist (`Get Variable Value`
keyword) ||
-|| Issue 859 || Enhancement || Medium || Additional listener attributes to
differentiate suite/test setup/teardown from other keywords. ||
-|| Issue 864 || Enhancement || Medium || Remove summary reports because
they are not needed after enhancements to normal reports ||
-|| Issue 875 || Enhancement || Medium || Always visible link from report
to log and from log to report ||
-|| Issue 892 || Enhancement || Medium || Messages logged by libraries when
they are imported and initialized should go to syslog ||
-|| Issue 896 || Enhancement || Medium || New `BuiltIn` keyword `Keywords
Should Exist` ||
-|| Issue 897 || Enhancement || Medium || Add name of the possible template
to `start/end_test listener` methods ||
-|| Issue 909 || Enhancement || Medium || Add option to `Collections.Lists
Should be Equal` to name indices ||
-|| Issue 889 || Documentation || Medium || Document that Easy Install by
default installs latest version even if that is alpha/beta/rc ||
-|| Issue 907 || Refactoring || Medium || Internal APIs have changed ||
-|| Issue 873 || Defect || Low || Suite name from directory that has '.' in
name is parsed wrong ||
-|| Issue 883 || Defect || Low || Not possible to assign doc or links for
combined tag statistics ||
-|| Issue 891 || Defect || Low || User keyword timeout is not shown in the
log ||
-|| Issue 906 || Defect || Low || `metadata` attribute missing from
`end_suite` listener method ||
-|| Issue 307 || Enhancement || Low || Paths should not be case-normalized |
|
-|| Issue 506 || Enhancement || Low || Remove `deprecated_absolute`
argument from `List Directory` keywords ||
-|| Issue 507 || Enhancement || Low || Remove the deprecated `Create File
With Encoding` keyword ||
-|| Issue 733 || Enhancement || Low || Deprecate old screenshot taking
keywords and remove deprecated `log_file_directory` argument and `Set
Screenshot Directories` keyword ||
-|| Issue 834 || Enhancement || Low || Integer variables like `${42}`
should create `int` type not `long` ||
-|| Issue 846 || Enhancement || Low || Tag stat links should be serialized
to XML ||
-|| Issue 877 || Enhancement || Low || Always show tag statistics and suite
statistics tables in logs an reports ||
-|| Issue 884 || Enhancement || Low || Tag stat link titles should support
replaced groups similarly as tag stat link urls ||
-|| Issue 905 || Enhancement || Low || Add `critical` attribute to
`start/end_test` listener methods ||
-|| Issue 813 || Documentation || Low || Document that Python libraries can
messages to console using `sys.__stdout__` ||
-|| Issue 839 || Documentation || Low || Online version of the Quick Start
Guide should explain how to get it ||
-|| Issue 848 || Documentation || Low || Document that if same variable is
given multiple times from CLI the last value takes effect ||
-|| Issue 850 || Documentation || Low || Document how to use list variables
with length related keywords. ||
-|| Issue 893 || Documentation || Low || Document that libraries should
communicate with the framework only from main thread ||
-
-Altogether 57 issues.
-