Skip to content

Commit 43f28d6

Browse files
author
Ext Haavisto Jukka
committed
0.4.0 Release
1 parent 69876f6 commit 43f28d6

File tree

141 files changed

+12978
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+12978
-2
lines changed

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# https://git-scm.com/docs/gitattributes
2+
# unix line feeds to every file (if dos linefeeds needed can be overridden)
3+
* -text

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
target
2+
*.html
3+
output.xml
4+
JavaFXLib-*.png
5+
.idea
6+
*.iml
7+
report-images
8+
9+
# temporary pom file by shade plugin
10+
dependency-reduced-pom.xml

AUTHORS.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Core contributors:
2+
Jukka Haavisto 2017 -
3+
Sami Pesonen 2017 -
4+
Pasi Saikkonen 2017 -
5+
6+
Other contributors:
7+
Tatu Lahtela Find All With Pseudo Class and Find Class keywords

BUILD.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## Sources
2+
3+
Code is organized according to the Maven convention in `src/main/java` and `src/test/java`.
4+
5+
6+
## Building
7+
8+
JavaFXLibrary uses Apache Maven as a build tool.
9+
10+
* `mvn clean package` packages JavaFXLibrary with dependencies. There is also documentation and xml file created.
11+
* `mvn clean verify` run acceptance tests
12+
13+
## Apache Maven Shade Plugin
14+
15+
* Since JavaFXLibrary runs in the same JVM as the AUT(Application Under Test), it's possible that same dependency libraries
16+
are being used by both JavaFXLibrary and the AUT. It's not uncommon that a specific version is needed for AUT and another
17+
version of the same dependency is required for JavaFXLibrary(e.g. TestFX dependency for Google Guava). Not always are these
18+
dependencies backwards compatible and therefore JavaFXLibrary has adopted Apache Maven Shade Plugin to cope with this issue.
19+
Currently the package com.google.common has been renamed in JavaFXLibrary as shaded.com.google.common to avoid version
20+
mismatches with Google Guava dependencies. See https://maven.apache.org/plugins/maven-shade-plugin/ for more info.
21+
22+
23+
24+
## Releasing
25+
26+
* update library version to x.x.x in pom.xml
27+
* run tests ``mvn clean verify``
28+
* ``git commit -m "version to x.x.x" pom.xml``
29+
* create tag ``git tag -a x.x.x``
30+
* push ``git push origin master`` and ``git push origin x.x.x``
31+
* create a new release and upload the jar file, html documentation and xml file to https://github.com/robotframework/JavaFXLibrary/releases
32+
* upload to Maven Repository (TBD)
33+
34+
## Announcements
35+
36+
* Twitter @robotframework
37+
* Robotframework Users and announcements mailing lists
38+
* Slack http://robotframework.slack.com #general and #JavaFXLibrary
39+

CONTRIBUTING.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Contributing
2+
3+
These guidelines instruct how to submit issues and contribute code to the JavaFXLibrary.
4+
5+
## Submitting Issues
6+
7+
Bugs and enhancements are tracked in the issue tracker. If you are unsure if something is a bug or is a feature worth implementing, you can first ask on on [Slack](http://robotframework.slack.com) #JavaFXLibrary channel. These and other similar forums, not the issue tracker, are also places where to ask general questions.
8+
9+
Before submitting a new issue, it is always a good idea to check is the same bug or enhancement already reported. If it is, please add your comments to the existing issue instead of creating a new one.
10+
11+
## Code Contributions
12+
13+
On GitHub pull requests are the main mechanism to contribute code. They
14+
are easy to use both for the contributor and for person accepting
15+
the contribution, and with more complex contributions it is easy also
16+
for others to join the discussion. Preconditions for creating a pull
17+
requests are having a [GitHub account](https://github.com/),
18+
installing [Git](https://git-scm.com>) and forking the
19+
_JavaFXLibrary project_.
20+
21+
GitHub has good articles explaining how to
22+
[set up Git](https://help.github.com/articles/set-up-git/),
23+
[fork a repository](https://help.github.com/articles/fork-a-repo/) and
24+
[use pull requests](https://help.github.com/articles/using-pull-requests)
25+
and we do not go through them in more detail. We do, however,
26+
recommend to create dedicated branches for pull requests instead of creating
27+
them based on the master branch. This is especially important if you plan to
28+
work on multiple pull requests at the same time.
29+
30+
##Tests
31+
32+
When submitting a pull request with a new feature or a fix, you should
33+
always include tests for your changes. These tests prove that your changes
34+
work, help prevent bugs in the future, and help document what your changes
35+
do. Depending an the change, you may need acceptance tests, unit tests
36+
or both.
37+
38+
Make sure to run all of the tests before submitting a pull request to be sure
39+
that your changes do not break anything.
40+
41+
## Finalizing Pull Requests
42+
43+
Once you have code, documentation and tests ready, it is time to finalize
44+
the pull request.
45+
46+
### AUTHORS.txt
47+
48+
If you have done any non-trivial change and would like to be credited,
49+
add yourself to _AUTHORS.txt_ file.
50+
51+
### Resolving Conflicts
52+
53+
Conflicts can occur if there are new changes to the master that touch the
54+
same code as your changes. In that case you should [sync your fork](https://help.github.com/articles/syncing-a-fork) and [resolve conflicts](https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line)
55+
to allow for an easy merge.
56+
57+
### Squashing Commits
58+
59+
If the pull request contains multiple commits, it is recommended that you
60+
squash them into a single commit before the pull request is merged.
61+
See [Squashing Github pull requests into a single commit](http://eli.thegreenplace.net/2014/02/19/squashing-github-pull-requests-into-a-single-commit)
62+
article for more details about why and how.
63+
64+
Squashing is especially important if the pull request contains lots of
65+
temporary commits and changes that have been later reverted or redone.
66+
Squashing is not needed if the commit history is clean and individual
67+
commits are meaningful alone.

COPYRIGHT.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Copyright 2017-2018 Eficode Oy
2+
Copyright 2018- Robot Framework Foundation
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.

README.md

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,77 @@
1-
# JavaFXLibrary
2-
Robot Framework library for JavaFX automation based on TestFX
1+
#JavaFXLibrary
2+
3+
[Robot Framework](http://robotframework.org) library for testing and connecting to a JavaFX java process and using [TestFX](https://github.com/TestFX/TestFX).
4+
5+
This library allows you to use robot/pybot (Python version of Robot Framework) to run test cases over remote library interface although it also works if you are running with jybot (Jython version of Robot Framework). This means that you can use your other pure Python libraries in your test cases that will not work when runnin with Jython.
6+
7+
JavaFXLibrary is tested to work with Robot Framework 3.0.2 or later.
8+
9+
You can connect to applications running on your local machine or even on a different machine.
10+
11+
12+
##Installation
13+
14+
1. Download latest JavaFXLibrary and documentation from https://github.com/robotframework/JavaFXLibrary/releases/
15+
2. Copy(if needed) JAR to desired location and run from command line using
16+
```
17+
java -jar JavaFXLibrary-<version>.jar
18+
19+
```
20+
3. JavaFXLibrary in RemoteServer mode should now be running in port [8270](http://localhost:8270)
21+
4. Optionally JAR can be launched with port number as an optional argument:
22+
```
23+
java -jar JavaFXLibrary-<version>.jar 1234
24+
```
25+
5. JavaFXLibrary in RemoteServer mode should now be running in port [1234](http://localhost:1234)
26+
27+
## Usage in Robot suite settings
28+
29+
Import the library:
30+
```
31+
***Settings***
32+
Library Remote http://localhost:8270/ WITH NAME JavaFXLibrary
33+
```
34+
Now the keywords can be used as usual:
35+
```
36+
Launch Javafx Application javafxlibrary.testapps.TestClickRobot
37+
```
38+
39+
In case of duplicate keywords(multiple keywords found with same name) use e.g. `JavaFXLibrary.'Keyword Name'` to get rid of warnings.
40+
41+
## Using multiple remote libraries
42+
43+
If you need to use the Remote library multiple times in a test suite, or just want to give it a more descriptive name, you can import it using the WITH NAME syntax.
44+
```
45+
***Settings***
46+
Library Remote http://localhost:8270/ WITH NAME client1
47+
Library Remote http://localhost:8272/ WITH NAME client2
48+
```
49+
50+
Now the keywords can be used as `client1.List Windows` and `client2.List Windows`
51+
52+
53+
## JavaFXLibrary demo
54+
55+
This can be also used as JavaFXLibrary demo.
56+
57+
Generic way with Maven (in repository root):
58+
```
59+
mvn verify
60+
```
61+
62+
Windows command line:
63+
```
64+
java -cp "target\JavaFXLibrary-<version>.jar" org.robotframework.RobotFramework --include smoke src\test\robotframework/
65+
```
66+
67+
Linux/OSX command line:
68+
```
69+
java -cp "target/JavaFXLibrary-<version>.jar" org.robotframework.RobotFramework --include smoke src/test/robotframework/
70+
71+
```
72+
73+
## Known issues
74+
75+
* Tests can be executed with robot/pybot/jybot! Jython can be used locally without remote interface.
76+
* Running tests multiple times requires starting the server again, or applications start launching behind other windows, causing tests to fail when robot is trying to interact with them.
77+
* At the moment there are problems with Java Objects, they might be returned as Java Strings or their methods may be unavailable.

0 commit comments

Comments
 (0)