Coder Social home page Coder Social logo

phantoman's Introduction

Phantoman

Latest Version Software License Total Downloads

The Codeception extension for automatically starting and stopping PhantomJS when running tests.

Minimum Requirements

  • Codeception 2.2.7
  • PHP 5.4

Installation using Composer

$ composer require site5/phantoman

Be sure to enable the extension in codeception.yml as shown in configuration below.

Recommended Additional Packages

PhantomJS Installer via Composer

It is highly recommended that you use the PhantomJS Installer package which will install PhantomJS locally to your project in vendor/bin. Please follow the installation instructions provided.

Phantoman uses vendor/bin/phantomjs by default. If any other installation of PhantomJS is used, please set the path as shown in the configuration below.

Configuration

By default Phantoman will use the path vendor/bin/phantomjs and port 4444.

Enabling and configuration can be done in codeception.yml or in your suite config file.

Enabling Phantoman with defaults

extensions:
    enabled:
        - Codeception\Extension\Phantoman

Enabling Phantoman with alternate settings

extensions:
    enabled:
        - Codeception\Extension\Phantoman
    config:
        Codeception\Extension\Phantoman:
            path: '/usr/bin/phantomjs'
            port: 4445
            suites: ['acceptance']

Enabling Phantoman in the acceptance suite except on the ci environment

extensions:
  enabled:
    - Codeception\Extension\Phantoman:
        suites: ['acceptance']
env:
  ci:
    extensions:
      enabled:
        - Codeception\Extension\Phantoman:
            suites: []

Available options

Options set in the Phantoman configuration are mapped to PhantomJS CLI options. The currently supported options are listed below.

Basic

  • path: {path}
    • Full path to the PhantomJS binary.
    • Default: vendor/bin/phantomjs
  • port: {port}
    • Webdriver port to start PhantomJS with.
    • Default: 4444
  • debug: {true|false}
    • Display debug output while Phantoman runs
    • Default: false

Proxy Support

  • proxy: {address:port}
    • Sets the proxy server.
  • proxyType: {[http|socks5|none]}
    • Specifies the proxy type.
  • proxyAuth: {username:password}
    • Provides authentication information for the proxy.

Other

  • suites: {array|string}
    • If omitted, PhantomJS is started for all suites.
    • Specify an array of suites or a single suite name.
  • webSecurity: {true|false}
    • Enables web security
  • ignoreSslErrors: {true|false}
    • Ignores errors in the SSL validation.
    • Defaults to false
  • sslProtocol: {sslv3|sslv2|tlsv1|any}
    • Sets the SSL protocol for secure connections
    • Defaults to sslv3
  • sslCertificatesPath: {path}
    • Sets the location for custom CA certificates (if none set, uses system default).
  • remoteDebuggerPort: {port}
    • Starts PhantomJS in a debug harness and listens on the specified port
  • remoteDebuggerAutorun: {true|false}
    • Runs the script in the debugger immediately
    • Defaults to false
  • cookiesFile: {file path}
    • Sets the file name to store the persistent cookies
  • diskCache: {true|false}
    • Enabled disk cache
    • Defaults to false
  • maxDiskCacheSize: {number}
    • Limit the size of the disk cache in KB
  • loadImages: {true|false}
    • Loads all inlined images
    • Defaults to true
  • localStoragePath: {file path}
    • The path to save LocalStorage content and WebSQL content
  • localStorageQuota: {number}
    • Maximum size to allow for data in local storage in KB
  • localToRemoteUrlAccess: {true|false}
    • Allows local content to access remote URL
    • Defaults to false
  • outputEncoding: {encoding}
    • Sets the encoding for the terminal output
    • Default is utf8
  • scriptEncoding: {encoding}
    • Sets the encoding used for starting the script
    • Default is utf8
  • silent: {true|false}
    • Suppresses messages about starting and stopping the server
    • Default is false
  • webdriverLoglevel: {ERROR|WARN|INFO|DEBUG)}
    • WebDriver Logging Level
    • Defaults to INFO
  • webdriverLogfile: {path}
    • File where to write the WebDriver’s Log

Usage

Once installed and enabled, running your tests with php codecept run will automatically start the PhantomJS server and wait for it to be accessible before proceeding with the tests.

Starting PhantomJS Server.
Waiting for the PhantomJS server to be reachable..
PhantomJS server now accessible.

Once the tests are complete, PhantomJS will be shut down.

Stopping PhantomJS Server.

Contributing

This repository makes use of EditorConfig to ensure code style consistency across editors. Please be sure to either have an EditorConfig plugin installed for your desire editor or ensure that all indenting is 4 space indenting with linux line endings.

phantoman's People

Contributors

acuthbert avatar apkostka avatar boone avatar cewald avatar fortuneteller avatar grantlucas avatar itspriddle avatar mzahir avatar newx avatar oblogic7 avatar trafex avatar tralafiti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phantoman's Issues

phantom starting before selenium server

I have in tests/_envs this files:
masterChrome.yml , masterPhantom.yml, produkceChrome.yml, produkceChrome.yml

in my codeception.yml i have:

actor: Tester
paths:
    tests: tests
    log: tests/_output
    data: tests/_data
    support: tests/_support
    envs: tests/_envs
settings:
    bootstrap: _bootstrap.php
    colors: true
    memory_limit: 1024M
extensions:
    enabled:
        - Codeception\Extension\RunFailed
        - Codeception\Extension\Phantoman
    config:
        Codeception\Extension\Phantoman:
        port: 4445
        suites: [acceptance '(produkcePhantom)', acceptance '(masterPhantom)']

When i start codeception as: vendor\bin\codecept run --env masterChrome acceptance --html
phantom starting first, after start phantom, test running in chrome (selenium server).

where is my mistake?
I use last versions (codeception 2.2.4, phantoman 1.1.6,

Start and stop PhantomJS only for specific suites

In most cases we only want to start/stop PhantomJS for acceptance tests. It'd be better to use Codeception events to do this instead of __construct and __destruct.

At the moment, there are no events early enough to start PhantomJS before the WebDriver module is initialized. A request for a new event before initialization has been made.

  • Ensure PhantomJS only starts for the suites it's enabled for
  • Ensure PhantomJS doesn't run on codecept build (#22)

Stop (and restart?) PhantomJS before updating it

This issue happened because of #20, but as the binary is there, it could as well be executed without relation to Codeception, thus...

If you have PhantomJS running in background and you try to update any composer package, the install command will run and fail with a message stating the phantomjs binary is being used.

Would be nice if:

  • the binary was stopped before the update procedure
    • not sure if it would be possible to start the binary again with the same settings (maybe getting the command that started it? That's viewable on ps aux)
  • OR the script noticed it was running and gave a better warning than an exception (not sure if this makes sense as well)

Does not work with Codeception 2.2 or 2.3.

In Phantoman.php, you have the line:

class Phantoman extends \Codeception\Platform\Extension

As of Codeception 2.2, this should be:

class Phantoman extends \Codeception\Extension

Currently we need to run a post install/update task to automate this, which isn't ideal.

Newest version not available for detected OS.

CentOS release 6.7 (Final) x64
Logic does a good job of detecting the OS and the most recent stable release of phantomjs. However, there is no stable release at the current version for the OS detected.

 [Composer\Downloader\TransportException]                                                                                                          
  The "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.0.0-linux-x86_64.tar.bz2" file could not be downloaded (HTTP/1.1 404 NOT FOUND)

...per https://bitbucket.org/ariya/phantomjs/downloads/

Solution: if the request returns anything other than status 200, tick down one version and try again but no go below the lowest supported version.

Enable overriding phantoman settings with codeception environments

It seems that in latest codeception version,
a setting like:

extensions:
enabled:
- Codeception\Extension\RunFailed
- Codeception\Extension\Phantoman
config:
Codeception\Extension\Phantoman:
proxy: ''
proxyType: 'http'

in an environment file doesnt alter the phantoman phantomjs call.
Setting the proxy in the codeception.yml works.

Overriding module settings etc. in the same env-yml file works, too.
Dunno if this is really related to phantoman extension or a bug inside codeption though.

Thx 4 help !

Full path to phantomjs on various OS

Hey, when running vendor/bin/codecept run with the only directory path to the phantomjs I got the following issue

WARNING: The PhantomJS path for Phantoman is set to a directory, this is being deprecated in the future. Please update your Phantoman configuration to be the full path to PhantomJS.


Starting PhantomJS Server
Warning Error: proc_open(): CreateProcess failed, error code - 87 in [C:\inetpub\wwwroot\maple\vendor\site5\phantoman\src\Phantoman.php, line 88]

Warning Error: proc_close() expects parameter 1 to be resource, boolean given in [C:\inetpub\wwwroot\maple\vendor\site5\phantoman\src\Phantoman.php, line 91]




  [Codeception\Exception\Extension]
  Codeception\Extension\Phantoman
  Failed to start PhantomJS server.

My codeception.yml looks like this:

extensions:
    config:
        Codeception\Extension\Phantoman:
            path: vendor/jakoch/phantomjs/bin/

When I set the full path, everything works.

extensions:
    config:
        Codeception\Extension\Phantoman:
            path: vendor/jakoch/phantomjs/bin/phantomjs.exe

But I cannot leave it like this, because I'm developing on the Windows 7 machine, but I want to run my tests also on the http://codeship.com or http://circleci.com which run on Linux. I see the deprecated message but it would be great if the system could find the binary file to run so it works on various OS.

Thanks :)

Do not try to re-install same PhantomJS version

I've noticed that, after the first install, the scripts try to install again the same PhantomJS binary every time we mess around with Composer. Would be better if it noticed there was no need to update anything, and skip that procedure.

AcceptanceHelper could not be found and loaded?

Using command:
codecept run acceptance LoginCept

error pop-up
[Codeception\Exception\ConfigurationException]
Module AcceptanceHelper could not be found and loaded

My acceptance.suit.yml

class_name: AcceptanceTester
modules:
enabled:
- WebDriver
- AcceptanceHelper
config:
PhpBrowser:
url: 'http://27.0.0.1/sample/'
WebDriver:
url: 'http://27.0.0.1/sample/'
browser: 'phantomjs'
host: '27.0.0.1'

Using phantomjs --webdriver=4444

How to fix it?

Config being passed in is not an array

Hi There,

I've been assuming this is a breaking change from codeception, however I'm not too sure! Codeception version = 2.1.7

My config:

class_name: AcceptanceTester
modules:
    enabled:
        - \Helper\LaravelEnvironmentSwitcher
        - WebDriver:
            browser: phantomjs
            url: http://acceptance-tests/
        - \Helper\Acceptance
        - Codeception\Extension\Phantoman
    config:
        Codeception\Extension\Phantoman:
            debug: true

I'm getting the following error on build and run of codeception

$  ./vendor/bin/codecept build
Building Actor classes for suites: acceptance, functional, unit
PHP Warning:  array_merge(): Argument #2 is not an array in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 22

Warning: array_merge(): Argument #2 is not an array in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 22
PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77


PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77
Starting PhantomJS Server
PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
Waiting for the PhantomJS server to be reachablePHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
.PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 70
Stopping PhantomJS ServerPHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77

PHP Notice:  Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77

Notice: Undefined index: silent in /Users/sam/code/www/clients/good-food-talks/vendor/codeception/codeception/src/Codeception/Extension.php on line 77
PhantomJS server stopped


  [Codeception\Exception\ExtensionException]
  Codeception\Extension\Phantoman
  PhantomJS server never became reachable


build [-c|--config [CONFIG]]

Any ideas what it could be? Seems a ModuleContainer is being passed into the construct instead of an array

Support debug option.

Currently debug is only used to dump the generated command.
It would make sense to also pass this on to phantomJS.

`composer update` results in "The requested package could not be found" error

I'm trying to install phantoman, but on installation I get the dreaded "The requested package codeception/phantoman could not be found in any version" message. This is my composer.json file in the root of my project:

{
    "require": {
        "codeception/codeception": "*",
        "jakoch/phantomjs-installer": "dev-master",
        "codeception/phantoman": "1.*"
    },
    "minimum-stability": "dev",
    "config": {
        "bin-dir": "vendor/bin"
    },
    "scripts": {
        "post-install-cmd": [
            "PhantomInstaller\\Installer::installPhantomJS"
        ],
        "post-update-cmd": [
            "PhantomInstaller\\Installer::installPhantomJS"
        ]
    }
}

And this is the full output of composer update:

php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package codeception/phantoman could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

PhantomJS doesn't get stopped

Hi,

I'm running into the issue that PhantomJS doesn't get stopped after all tests are done, however Phantoman says PhantomJS is stopped.

When I dump the proc_get_status output in the stopServer() methode just before the check to see if the process is still running I get this:

array(8) {
  'command' =>
  string(68) "'/vagrant/vendor/phantomjs/phantomjs/bin/phantomjs' --webdriver=4444"
  'pid' =>
  int(11708)
  'running' =>
  bool(false)
  'signaled' =>
  bool(true)
  'stopped' =>
  bool(false)
  'exitcode' =>
  int(-1)
  'termsig' =>
  int(15)
  'stopsig' =>
  int(0)
}

But, when I check the processlist, I see PhantomJS having a different pid.

11709 pts/0 Sl+ 0:14 /vagrant/vendor/phantomjs/phantomjs/bin/phantomjs --webdriver=4444

When I check the processlist during the tests, I get the following:

vagrant  11704  0.0  0.0   4444   648 pts/0    S+   09:52   0:00  |                   \_ sh -c php /vagrant/vendor/bin/codecept run acceptance --xml
vagrant  11705 38.4  1.0 313364 20536 pts/0    S+   09:52   0:01  |                       \_ php /vagrant/vendor/bin/codecept run acceptance --xml
vagrant  11708  0.0  0.0   4444   644 pts/0    S+   09:52   0:00  |                           \_ sh -c '/vagrant/vendor/phantomjs/phantomjs/bin/phantomjs' --webdriver=4444
vagrant  11709 38.0  0.2  77840  5116 pts/0    t+   09:52   0:00  |                               \_ /vagrant/vendor/phantomjs/phantomjs/bin/phantomjs --webdriver=4444

So it seems the parent process is already gone when Phantoman tries to stop PhantomJS, but the child/fork keeps running forever.

This is a snippet of the strace output:

11705 09:54:59.242989 kill(11708, SIGTERM) = 0
11708 09:54:59.243379 <... wait4 resumed> 0x7ffff0f3138c, 0, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
11708 09:54:59.243525 --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=11705, si_uid=1000} ---
11708 09:54:59.243770 +++ killed by SIGTERM +++
11705 09:54:59.243817 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=11708, si_status=SIGTERM, si_utime=0, si_stime=0} ---
11705 09:54:59.244031 write(5, "Stopping PhantomJS Server", 25) = 25
11702 09:54:59.244249 <... read resumed> "Stopping PhantomJS Server", 8192) = 25
11705 09:54:59.244340 wait4(11708,  <unfinished ...>
11702 09:54:59.244419 write(1, "Stopping PhantomJS Server", 25 <unfinished ...>
11705 09:54:59.244494 <... wait4 resumed> [{WIFSIGNALED(s) && WTERMSIG(s) == SIGTERM}], WNOHANG|WSTOPPED, NULL) = 11708
11702 09:54:59.244929 <... write resumed> ) = 25
11702 09:54:59.245107 read(3,  <unfinished ...>
11705 09:54:59.245303 write(1, "array(8) {\n  'command' =>\n  string(68) \"'/vagrant/vendor/phantomjs/phantomjs/bin/phantomjs' --webdriver=4444\"\n  'pid' =>\n  int(11708)\n  'running' =>\n  bool(false)\n  'signaled' =>\n  bool(true)\n  's
topped' =>\n  bool(false)\n  'exitcode' =>\n  int(-1)\n  'termsig' =>\n  int(15)\n  'stopsig' =>\n  int(0)\n}\n", 298) = 298
11702 09:54:59.245508 <... read resumed> "array(8) {\n  'command' =>\n  string(68) \"'/vagrant/vendor/phantomjs/phantomjs/bin/phantomjs' --webdriver=4444\"\n  'pid' =>\n  int(11708)\n  'running' =>\n  bool(false)\n  'signaled' =>\n  bool(t
rue)\n  'stopped' =>\n  bool(false)\n  'exitcode' =>\n  int(-1)\n  'termsig' =>\n  int(15)\n  'stopsig' =>\n  int(0)\n}\n", 8192) = 298
11705 09:54:59.245588 wait4(11708,  <unfinished ...>
11702 09:54:59.245640 write(1, "array(8) {\n  'command' =>\n  string(68) \"'/vagrant/vendor/phantomjs/phantomjs/bin/phantomjs' --webdriver=4444\"\n  'pid' =>\n  int(11708)\n  'running' =>\n  bool(false)\n  'signaled' =>\n  bool(true)\n  's
topped' =>\n  bool(false)\n  'exitcode' =>\n  int(-1)\n  'termsig' =>\n  int(15)\n  'stopsig' =>\n  int(0)\n}\n", 298 <unfinished ...>
11705 09:54:59.245720 <... wait4 resumed> 0x7fff16378714, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes)
11705 09:54:59.248683 write(5, "\n", 1 <unfinished ...>
11702 09:54:59.248759 <... write resumed> ) = 298
11705 09:54:59.248816 <... write resumed> ) = 1
11702 09:54:59.248873 read(3, "\n", 8192) = 1
11705 09:54:59.249160 write(5, "PhantomJS server stopped\n", 25 <unfinished ...>
11702 09:54:59.249238 write(1, "\n", 1 <unfinished ...>
11705 09:54:59.249321 <... write resumed> ) = 25
11705 09:54:59.249633 close(8 <unfinished ...>
11702 09:54:59.249747 <... write resumed> ) = 1
11705 09:54:59.249805 <... close resumed> ) = 0
11702 09:54:59.249931 read(3,  <unfinished ...>
11705 09:54:59.250118 wait4(11708,  <unfinished ...>
11702 09:54:59.250188 <... read resumed> "PhantomJS server stopped\n", 8192) = 25
11705 09:54:59.250255 <... wait4 resumed> 0x7fff163787cc, WNOHANG, NULL) = -1 ECHILD (No child processes)
11702 09:54:59.250344 write(1, "PhantomJS server stopped\n", 25 <unfinished ...>
11705 09:54:59.250413 close(13)         = 0
11702 09:54:59.250743 <... write resumed> ) = 25
11705 09:54:59.250874 close(11 <unfinished ...>
11702 09:54:59.250932 read(3,  <unfinished ...>
11705 09:54:59.251034 <... close resumed> ) = 0

What I find strange is that the strace shows the parent process gets killed by something, after tracing it further I found out it get's killed by proc_terminate() which is registered as shutdown function and gets executed before stopServer().

I'm diving deeper into this, when I find something I let you know.

missing functions

Hi, when I try to use phantoman, I received error messages about missing functions.
Looking at http://codeception.com/docs/03-ModulesAndHelpers I have inserted empty stubs into Phantoman.php and it all works fine.
Specifically I needed to add these functions and properties.
// disable all inherited actions
public static $includeInheritedActions = false;

 // include only "see" and "click" actions
public static $onlyActions = array();

// exclude "seeElement" action
public static $excludeActions = array();

public function _beforeSuite($settings = array()) {
}

public function _getName() {
}
public function _cleanup() {
}
public function _resetConfig() {
}



// HOOK: after suite
public function _afterSuite() {
}    

// HOOK: before each step
public function _beforeStep(\Codeception\Step $step) {
}

// HOOK: after each step
public function _afterStep(\Codeception\Step $step) {
}

// HOOK: before test
public function _before(\Codeception\TestCase $test) {
}

// HOOK: after test
public function _after(\Codeception\TestCase $test) {
}

// HOOK: on fail
public function _failed(\Codeception\TestCase $test, $fail) {
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.