質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHPUnit

PHPUnitは、PHP向けのユニット・テスト向けフレームワークで、手動では手間のかかるテスト作業を自動化し、繰り返し実行することが可能です。

Q&A

解決済

1回答

481閲覧

PHPUnit テスト進捗で表示される "se" とはなにか?

mochi.monaka

総合スコア26

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHPUnit

PHPUnitは、PHP向けのユニット・テスト向けフレームワークで、手動では手間のかかるテスト作業を自動化し、繰り返し実行することが可能です。

0グッド

2クリップ

投稿2019/05/08 21:37

編集2019/05/08 22:58

Laravel を使っています。

./vendor/bin/phpunit でテストを走らせるとき、
ターミナルではスクリーンショットのように各テストケース進捗のドットの後ろに "se" と付きます。付かないケースもあります。
何度走らせても同じように、付くケースは付く、付かないケースは付きません。

plain

この "se" は何でしょうか?
なにか有用な情報でなければ消したいと思っています。

ずっと以前には一つも表示されていなかったように思います。
気づくといつのまにか付くようになっていましたが、これを説明した記事や、他の方のスクリーンショットをひとつも見たことがありませんし、なにか意味があるとしても意図的にこんな表示の仕方をさせるとは思いにくいので、私の環境が異常ではと考えています。
Google 画像検索 q=laravel+phpunit

現在の環境は以下ですが、それぞれもっと前のバージョンから表示されています。
曖昧な記憶ですが、バージョン5になってしばらくして(5.3や5.4くらい?)から付きだしたような気がします。

  • Laravel 5.7.28
  • PHPUnit 7.5.9

調べたことと結果

  • ネット記事での説明を検索
    1 件も見つけられませんでした

  • 同じような表示をしているスクリーンショットを検索
    1 件も見つけられませんでした

  • vendor/ 以下も含め "se" 'se' での全検索
    どこかでこのように出力していればと念のため検索しましたが 1 件もヒットしませんでした


普段は codedungeon/phpunit-result-printer を使っているのですが、同じように "se" が付きます。
上記スクリーンショットは、質問にあたって codedungeon/phpunit-result-printer が関係ないことを確認するために外した状態で実行して撮影しました。
普段はこのように表示されています。
phpunit-result-printer

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mikkame

2019/05/09 09:17

> vendor/ 以下も含め "se" 'se' での全検索 echo "s"; echo "e"; または echo $flg; のようになってたりしませんか。 echo を全文検索してみると良いと思います
mochi.monaka

2019/05/10 22:53

`s` と `e` にフラグとしてに1文字ずつ意味がある、 `"se"` でまとめて出力されているわけではない可能性があるとも考えましたが、 さすがに 1 文字では見つかる可能性の高い検索は無理として調査を見合わせていました。 >echo "s"; シングルクォートにしたり、検索結果が膨大で目視確認できないのでとりあえず末尾に `PHP_EOL;` が無い行(多かったので)などと正規表現での全検索でヒットを減らすなどある程度試しましたが、それでも多く、目視の限りでは見つかりませんでした。 1 文字ずつ出力するとして `s` と `e` の出力方法が違うとは思えませんが一応 `e` でも検索してみて、同様の結果でした。 `echo` や `print` を付けず単に `"s"` の検索は当然もっと膨大で、それぞれ時間をかけましたが探しきれませんでした。 > echo $flg; こういう出力方法ももちろんあると思いますが、変数名がわからない以上は探しようがなく探していません。 ご回答では、`s` を探そうとなさいましたので、つまり出力されないのがやはり普通のようだとわかりました。 コメントありがとうございます。
xenbeat

2019/05/10 23:21

最終的にエラーは0でしょうか。できれば結果全体を見たいですね。
mochi.monaka

2019/05/11 00:25

スクリーンショットのテストの結果はすべてグリーンですが、 それを問わず(テストがすべて終わった段階でなく)、ケースの進捗に併せてドット一つ一つに付いていますので、最終的にどうかは関係ないと思います。 実際、すべてグリーンでも、レッドが 1 つあってもたくさんあっても、同じように `se` が付きます。
mikkame

2019/05/11 02:33

もうxdebug を入れて、ステップ実行しつつs/eが出てくるタイミングを探すしかないですね・・・
mpyw

2019/05/11 12:18

>> `echo` や `print` を付けず単に `"s"` の検索は当然もっと膨大で、それぞれ時間をかけましたが探しきれませんでした。 "s" とか 's' 1文字だとそんなに無いような気もしますけどねぇ
guest

回答1

0

自己解決

くそしょーもない原因を特定して、解決しました。

テスト時だけでなくシーディング時にも再現することに気づいたので、あれこれ追って、 Illuminate/ 内をぐるぐる回り、 database/factories/ 内の各ファイルをロードする箇所まで辿り着きました。
結局、自分の書いたファクトリファイルの1つの先頭が se<?php という誤入力だかから始まっており、このファクトリファイルが読まれる度にコンテンツとして "se" が出力されていました。。

PHP の特徴としてこういう誤入力はエラーにならないので気づけませんでした。
ファイル=ソース ではなく、 ファイル内の<?php ?>内=ソース で、 <?php ?>外=コンテンツ、
外に何が書かれていようが誤入力でなく「そういうコンテンツ」であり、さらにソースには誤りは一切ないので。

投稿2019/08/05 17:15

mochi.monaka

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tetsunosuke

2019/08/06 01:06

うわあ これは気づきようがないな・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問