true_automation 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ad9533605c7a55ad8e9528f286a5968967617ecc
4
- data.tar.gz: f1f1ee18fdc71fbe0d3e69f46e0e71f67621b1f2
3
+ metadata.gz: 3355f74c9a473cd7b9b70072486452f12ed52ca1
4
+ data.tar.gz: c3c07946636cc8afc43ff29170a07bf8a8ef1813
5
5
  SHA512:
6
- metadata.gz: 82bf853bbeb06701deecb8aad1bf6179741d28e473c8a0bcb24582a587d08355a8f16c79a4aecea9bf3fdac63ae898f676e0f75f5f3e0d03b63fcc83497b389d
7
- data.tar.gz: '02258e95a4cdcf96c3df1a2cbb65019b51b1719fe8fd04c5e0b0ea805bc11d1607cc7b944a9a399d122a6485a602f7adcca1455f68872e02462047ae3e98a544'
6
+ metadata.gz: 87a85bc1280d4d0c812a8508f52b156c0f6c626a36e52c9eec9cc97dd32ffbe74e9a25a29150a60ba097ee7ef4ed90e042f94d8ff97f6c58f2e192510b3e0999
7
+ data.tar.gz: 96ca25ec16a59b3736ecf92c81e69b9ce20dd10f3393abd539fbba66698bc9ba167208743a3f78eeee5db01208b73b082b25842be067b662e461180e38519679
data/README.md CHANGED
@@ -7,13 +7,17 @@
7
7
  **true_automation** gem provides helper DSL method, that can be used instead of Selenium/Capybara locators.
8
8
  Initial setup aim is to make `ta` method visible for your code.
9
9
 
10
- You need **trueautomation** npm package installed globally first. It requires NodeJS 9+.
11
- We recommend to use [nvm](https://github.com/creationix/nvm) or [nvm-windows](https://github.com/coreybutler/nvm-windows)
12
- to install Node.
10
+ You need TrueAutomation.IO client installed first.
13
11
 
14
- When right version of Node is installed run the following command:
12
+ To install it just run the following command in your terminal. Using cURL:
15
13
 
16
- $ npm install -g trueautomation
14
+ curl -o- http://trueautomation.io/installer.sh | bash
15
+
16
+ Or using wget
17
+
18
+ wget -qO- http://trueautomation.io/installer.sh | bash
19
+
20
+ Then restart your terminal to start using TrueAutomation.IO
17
21
 
18
22
 
19
23
  ### Automatic Setup
@@ -23,8 +27,8 @@ in your project. Currently we support Capybara/RSpec automatic setup only.
23
27
 
24
28
  #### Capybara/RSpec
25
29
 
26
- For Capybara/RSpec projects TrueAutomation installer adds **true_automation** gem to the Gemfile, and includes TrueAutomation
27
- DSL to `rspec_helper.rb`.
30
+ For Capybara/RSpec projects TrueAutomation installer adds **true_automation** gem to the Gemfile, includes TrueAutomation
31
+ DSL to `rspec_helper.rb` and replaces WebDriver with TrueAutomaton.IO Driver
28
32
 
29
33
  #### Other
30
34
 
@@ -43,6 +47,48 @@ And then execute:
43
47
 
44
48
  $ bundle install
45
49
 
50
+ #### Using TrueAutomaton.IO Capybara WebDriver
51
+
52
+ ```ruby
53
+ require 'true_automation/driver/capybara'
54
+ ```
55
+
56
+ To initialize WebDriver for Capybara
57
+ ```ruby
58
+ TrueAutomation::Driver::Capybara.new(app, port: 9515)
59
+ ```
60
+
61
+ #### Controlling TrueAutomation.IO Driver lifecycle
62
+
63
+ ```ruby
64
+ require 'true_automation/client'
65
+ ```
66
+
67
+ Initialize the client
68
+
69
+ ```ruby
70
+ ta_client = TrueAutomation::Client.new
71
+ ```
72
+
73
+ Start the client:
74
+ ```ruby
75
+ ta_client.start(port: 9515)
76
+ ```
77
+
78
+ Wait until client is started:
79
+ ```ruby
80
+ ta_client.wait_until_start
81
+ ```
82
+
83
+ Stop the client:
84
+ ```ruby
85
+ ta_client.stop
86
+ ```
87
+
88
+ Client automatically writes the log in `./log/trueautomation-<date-time>.log`
89
+
90
+ #### Using TrueAutomation.IO locators
91
+
46
92
  Add TrueAutomation DSL to your test file
47
93
 
48
94
  ```ruby
@@ -1,42 +1,28 @@
1
1
  require 'open3'
2
2
  require 'json'
3
+ require 'mkmf'
3
4
 
4
5
  module TrueAutomation
5
6
  class Client
6
7
  @pid = nil
7
8
 
8
- def start
9
- begin
10
- node_ver = `node -v`
11
- node_ver = node_ver[1..-1]
12
- node_versions = node_ver.split('.')
13
- major_version = node_versions[0]
9
+ def start(options)
14
10
 
15
- if major_version.to_i < 9
16
- puts "Node version #{node_ver} found. TrueAutomation.IO requires Node 9+ to run."
17
- exit
18
- end
19
- rescue e
20
- puts 'Node executable can not be found. node version 9+ is required to run TrueAutomation.IO tests.'
21
- exit
22
- end
23
-
24
- begin
25
- trueautomation_version = `trueautomation --version`
11
+ @port = options[:port] || 9515
12
+ @executable = ENV['TRUEAUTOMATION_EXEC'] || 'trueautomation'
26
13
 
27
- puts "TrueAutomation.IO client #{trueautomation_version.strip}"
28
- rescue e
29
- puts 'TrueAutomation.IO npm package is not installed. Run `npm install -g trueautomation` to install it first.'
30
- exit
14
+ if find_executable(@executable).nil?
15
+ raise "`#{@executable}` not found. Can not find TrueAutomation.IO client"
31
16
  end
32
17
 
33
- Dir.mkdir('log') unless File.exist?('log')
18
+ trueautomation_version = `#{@executable} --version`
19
+ puts "TrueAutomation.IO client #{trueautomation_version.strip}"
34
20
 
21
+ Dir.mkdir('log') unless File.exist?('log')
35
22
  logfile = "log/trueautomation-#{Time.now.strftime('%Y%m%dT%H%M%S')}.log"
36
23
 
37
- @pid = spawn('trueautomation start', out: logfile)
38
-
39
- puts "Started TrueAutomation.IO client with pid #{@pid}"
24
+ @pid = spawn("#{@executable} --log-file #{logfile} --port #{@port}")
25
+ puts "Started TrueAutomation.IO client with pid #{@pid} listening to port #{@port}"
40
26
 
41
27
  @pid
42
28
  end
@@ -61,7 +47,7 @@ module TrueAutomation
61
47
  private
62
48
 
63
49
  def check_connection
64
- Socket.tcp('localhost', 9515, connect_timeout: 2) { true } rescue false
50
+ Socket.tcp('localhost', @port, connect_timeout: 2) { true } rescue false
65
51
  end
66
52
  end
67
53
  end
@@ -4,20 +4,22 @@ module TrueAutomation
4
4
  module Driver
5
5
  class Capybara < Capybara::Selenium::Driver
6
6
  def initialize(app, **options)
7
+ @port = options.delete(:port) || 9515
8
+
7
9
  super(app, options)
8
10
 
9
11
  @ta_client = TrueAutomation::Client.new
10
12
 
11
- @options.merge!({browser: :remote,
12
- url: 'http://localhost:9515/',
13
+ @options.merge!(browser: :remote,
14
+ url: "http://localhost:#{@port}/",
13
15
  desired_capabilities: {
14
16
  browser: :chrome
15
- }})
17
+ })
16
18
  end
17
19
 
18
20
  def browser
19
21
  unless @browser
20
- @ta_client.start
22
+ @ta_client.start(port: @port)
21
23
 
22
24
  @ta_client.wait_until_start
23
25
 
@@ -1,3 +1,3 @@
1
1
  module TrueAutomation
2
- VERSION = '0.3.4'
2
+ VERSION = '0.3.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: true_automation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - TrueAutomation.IO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-19 00:00:00.000000000 Z
11
+ date: 2018-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler