Não é possível escrever casos de teste para um plug-in do WordPress usando PHPUnit e WP-CLI

4

Configuração do WordPress: WordPress instalado usando VVV .

Configuração do PHPUnit: Eu configurei o conjunto de testes como mencionado no blog do Pippin . E acessando o PHPUnit depois de logar na máquina da caixa usando vagrant ssh .

Caso de teste: estou escrevendo meus casos de teste dentro da pasta /tests/ no arquivo test-{my-plugin-filename}.php .

function test_my_plugin_method() {
    $links = plugin_method();
}

Onde estou preso?

Quando executo PHPUnit , estou recebendo o seguinte erro.

Error: Call to undefined function plugin_method()

Eu adicionei a seguinte linha.

require_once( dirname( dirname( __FILE__ ) ) . '/plugin-file.php' );

Mas acredito que estou perdendo alguma coisa. Qualquer ajuda seria muito apreciada.

Editar 1:

Eu executei wp scaffold plugin-tests e, em seguida, a seguinte linha, como mencionado no blog do Pippin (consulte acima para link).

bash bin/install-wp-tests.sh wordpress_test root '' localhost latest

Finalmente eu executei phpunit .

bootstrap.php

Eu não mudei nada no arquivo bootstrap.php.

<?php

$_tests_dir = getenv( 'WP_TESTS_DIR' );
if ( ! $_tests_dir ) {
    $_tests_dir = '/tmp/wordpress-tests-lib';
}

require_once $_tests_dir . '/includes/functions.php';

function _manually_load_plugin() {
    require dirname( dirname( __FILE__ ) ) . '/my-plugin.php';
}
tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );

require $_tests_dir . '/includes/bootstrap.php';
    
por Maria Daniel Deepak 29.06.2016 / 02:57

2 respostas

1

O plugin_method() está publicamente disponível? Verifique se é um método de classe ou se pertence a um espaço de nomes.

Se pertencer a uma classe, você deverá criar um objeto da classe antes de poder chamar o método. Da mesma forma, se for um método de namespace, você deverá chamar a função com o namespace completo.

    
por Sudar 01.07.2016 / 17:38
1

Você pode mostrar o código completo no seu arquivo de bootstrap de testes de unidade?

Acredito que o plug-in não seja carregado corretamente, aqui está como ele pode ser carregado como um plugin mu ao executar testes.

De qualquer forma, sugiro que você use o comando wp scaffold plugin-tests do WP CLI para começar com testes documentados rapidamente aqui .

    
por Nikhil Chavan 29.06.2016 / 06:12