Читать локальный Json PHPUnit файл журнала JQuery - PullRequest
1 голос
/ 28 декабря 2011

Я пытался разобрать журнал phpunit json с помощью jquery, однако он возвращает мне ошибку.

Я использовал следующий код для анализа

 <html>
    <head>
     <title>PHPUnit Report</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <script src="./jquery-1.6.2.min.js"></script>
  </head>
  <body>
     <script type="text/javascript">
        var json = $.getJSON('logfile.json', function(data){
            alert(data);
        }).success(function() { alert("second success"); })
        .error(function() { alert("error"); });
     </script>
   </body>
 </html>

Это файл журнала json

 {"event":"suiteStart","suite":"","tests":22}{"event":"suiteStart","suite":"Application_Model_CarrinhoTest","tests":4}{"event":"testStart","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testCriacaoObjeto"}{"event":"test","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testCriacaoObjeto","status":"pass","time":0.013954162597656,"trace":[],"message":""}{"event":"testStart","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testAdicionarProduto"}{"event":"test","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testAdicionarProduto","status":"pass","time":0.015092134475708,"trace":[],"message":""}{"event":"testStart","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testRemoverProduto"}{"event":"test","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testRemoverProduto","status":"pass","time":0.0048158168792725,"trace":[],"message":""}{"event":"testStart","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testLimparCarrinho"}{"event":"test","suite":"Application_Model_CarrinhoTest","test":"Application_Model_CarrinhoTest::testLimparCarrinho","status":"pass","time":0.0047218799591064,"trace":[],"message":""}{"event":"suiteStart","suite":"Application_Model_ProdutoTest","tests":3}{"event":"testStart","suite":"Application_Model_ProdutoTest","test":"Application_Model_ProdutoTest::testaCriacaoProduto"}{"event":"test","suite":"Application_Model_ProdutoTest","test":"Application_Model_ProdutoTest::testaCriacaoProduto","status":"pass","time":0.0066261291503906,"trace":[],"message":""}{"event":"testStart","suite":"Application_Model_ProdutoTest","test":"Application_Model_ProdutoTest::testaErroCriacao"}{"event":"test","suite":"Application_Model_ProdutoTest","test":"Application_Model_ProdutoTest::testaErroCriacao","status":"pass","time":0.0081219673156738,"trace":[],"message":""}{"event":"testStart","suite":"Application_Model_ProdutoTest","test":"Application_Model_ProdutoTest::testaCadastroProduto"}{"event":"test","suite":"Application_Model_ProdutoTest","test":"Application_Model_ProdutoTest::testaCadastroProduto","status":"pass","time":0.086114883422852,"trace":[],"message":""}{"event":"suiteStart","suite":"Default_CarrinhoControllerTest","tests":4}{"event":"testStart","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testIndexAction"}{"event":"test","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testIndexAction","status":"fail","time":0.18276596069336,"trace":[],"message":"Failed asserting node denoted by div#view-content p CONTAINS content \"View script for controller <b>Carrinho<\/b> and script\/action name <b>index<\/b>\""}{"event":"testStart","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testAdicionarProdutoAction"}{"event":"test","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testAdicionarProdutoAction","status":"pass","time":0.038674831390381,"trace":[],"message":""}{"event":"testStart","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testRemoverProdutoAction"}{"event":"test","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testRemoverProdutoAction","status":"pass","time":0.039582967758179,"trace":[],"message":""}{"event":"testStart","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testAlterarQuantidadeProdutoAction"}{"event":"test","suite":"Default_CarrinhoControllerTest","test":"Default_CarrinhoControllerTest::testAlterarQuantidadeProdutoAction","status":"pass","time":0.038434982299805,"trace":[],"message":""}{"event":"suiteStart","suite":"Default_CategoriaControllerTest","tests":2}{"event":"testStart","suite":"Default_CategoriaControllerTest","test":"Default_CategoriaControllerTest::testIndexAction"}{"event":"test","suite":"Default_CategoriaControllerTest","test":"Default_CategoriaControllerTest::testIndexAction","status":"fail","time":0.043931007385254,"trace":[],"message":"Failed asserting node denoted by div#view-content p CONTAINS content \"View script for controller <b>Categoria<\/b> and script\/action name <b>index<\/b>\""}{"event":"testStart","suite":"Default_CategoriaControllerTest","test":"Default_CategoriaControllerTest::testDetalheAction"}{"event":"test","suite":"Default_CategoriaControllerTest","test":"Default_CategoriaControllerTest::testDetalheAction","status":"pass","time":0.040285110473633,"trace":[],"message":""}{"event":"suiteStart","suite":"Default_IndexControllerTest","tests":1}{"event":"testStart","suite":"Default_IndexControllerTest","test":"Default_IndexControllerTest::testIndexAction"}{"event":"test","suite":"Default_IndexControllerTest","test":"Default_IndexControllerTest::testIndexAction","status":"fail","time":0.045408964157104,"trace":[],"message":"Failed asserting node denoted by div#welcome h3 CONTAINS content \"This is your project's main page\""}{"event":"suiteStart","suite":"Default_ProdutoControllerTest","tests":2}{"event":"testStart","suite":"Default_ProdutoControllerTest","test":"Default_ProdutoControllerTest::testIndexAction"}{"event":"test","suite":"Default_ProdutoControllerTest","test":"Default_ProdutoControllerTest::testIndexAction","status":"fail","time":0.04747200012207,"trace":[],"message":"Failed asserting last controller used <\"error\"> was \"Produto\""}{"event":"testStart","suite":"Default_ProdutoControllerTest","test":"Default_ProdutoControllerTest::testDetalheAction"}{"event":"test","suite":"Default_ProdutoControllerTest","test":"Default_ProdutoControllerTest::testDetalheAction","status":"fail","time":0.042054891586304,"trace":[],"message":"Failed asserting last controller used <\"error\"> was \"Produto\""}{"event":"suiteStart","suite":"Default_ProdutosControllerTest","tests":3}{"event":"testStart","suite":"Default_ProdutosControllerTest","test":"Default_ProdutosControllerTest::testIndexAction"}{"event":"test","suite":"Default_ProdutosControllerTest","test":"Default_ProdutosControllerTest::testIndexAction","status":"pass","time":0.046010971069336,"trace":[],"message":""}{"event":"testStart","suite":"Default_ProdutosControllerTest","test":"Default_ProdutosControllerTest::testBuscarAction"}{"event":"test","suite":"Default_ProdutosControllerTest","test":"Default_ProdutosControllerTest::testBuscarAction","status":"pass","time":0.043781995773315,"trace":[],"message":""}{"event":"testStart","suite":"Default_ProdutosControllerTest","test":"Default_ProdutosControllerTest::testDetalheAction"}{"event":"test","suite":"Default_ProdutosControllerTest","test":"Default_ProdutosControllerTest::testDetalheAction","status":"pass","time":0.04433798789978,"trace":[],"message":""}{"event":"suiteStart","suite":"Default_UsuarioControllerTest","tests":3}{"event":"testStart","suite":"Default_UsuarioControllerTest","test":"Default_UsuarioControllerTest::testIndexAction"}{"event":"test","suite":"Default_UsuarioControllerTest","test":"Default_UsuarioControllerTest::testIndexAction","status":"pass","time":0.048629999160767,"trace":[],"message":""}{"event":"testStart","suite":"Default_UsuarioControllerTest","test":"Default_UsuarioControllerTest::testLogarAction"}{"event":"test","suite":"Default_UsuarioControllerTest","test":"Default_UsuarioControllerTest::testLogarAction","status":"pass","time":0.046178817749023,"trace":[],"message":""}{"event":"testStart","suite":"Default_UsuarioControllerTest","test":"Default_UsuarioControllerTest::testSairAction"}{"event":"test","suite":"Default_UsuarioControllerTest","test":"Default_UsuarioControllerTest::testSairAction","status":"pass","time":0.04793381690979,"trace":[],"message":""}

Что не так?Как я мог разобрать это?

Ответы [ 3 ]

2 голосов
/ 07 марта 2012

Я думаю, что ваш JSON такой, каким он должен быть, phpunit выводит JSON по мере того, как происходит событие ... каждое из этих событий может быть легко проанализировано, но выполнение их всех как одного приведет к ошибкам.предпочел бы иметь формат, который можно сразу проанализировать в JS или с помощью json_decode в php, но похоже, что этого пока не произойдет ...

https://github.com/sebastianbergmann/phpunit/issues/142

0 голосов
/ 27 января 2016

Вы можете конвертировать файл json в действительный файл, используя sed заранее:

    sed -i.bak 's/^{$/[{/g;s/^}$/}]/g;s/}{/},{/g' logfile.json
0 голосов
/ 26 августа 2013

Единственное, чего не хватает, это запятой между событиями и заключительными квадратными скобками. Вы можете добавить их вручную, а затем json_decode.

$json = file_get_contents('/log.json');
$json = '['.str_replace('}{', '},{', $json).']';
$data = json_decode($json, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...