開発環境
macOS ver.10.15.3
XAMPP 7.3.12-0
独学でphpを勉強している者です。
ローカル環境で作成している自作アプリにPHPUnitを使用したいと思いcomposerに追加しました。
また、
pbook/PHPUnitCourse/src/PictureBook.php というテストの対象ファイルを作り、
pbook/PHPUnitCourse/tests/PictureBookTest.php というテストケース
を作成しました。
ターミナルに
vendor/bin/phpunit PHPUnitCourse/tests/
と実行コマンドを入力すると、
PHPUnit 9.0.1 by Sebastian Bergmann and contributors.
Cannot open file "/Applications/XAMPP/xamppfiles/htdocs/pbook/./tests/bootstrap.php".
とメッセージが表示され、テストが実行できません。
実行時のカレントディレクトリは以下になります。
/Applications/XAMPP/xamppfiles/htdocs/pbook
「ファイルが開けない」と言われているので、パスの指定がどこかおかしい箇所があるのでしょうか。
PHPUnitの仕組み自体理解が浅く、的が絞り切れないのですが、テストを実行するにはどこを修正すれば良いでしょうか。
よろしくお願いいたします。
pbook/PHPUnitCourse/src/PictureBook.php
php:
1namespace PictureBook; 2 3class PictureBook { 4 //$a + $b を返す 5 public function Add($a, $b) { 6 return $a + $b; 7 } 8 9 //$a - $b を返す 10 public function Sub($a, $b) { 11 return $a + $b; 12 } 13} 14
pbook/PHPUnitCourse/tests/PictureBookTest.php
php:
1<?php 2require_once('./../vendor/autoload.php'); 3 4class PictureBookTest extends PHPUnit\Framework\TestCase { 5 public function test_add() { 6 $sample = new PictureBook\PictureBook(); 7 $this->assertEquals(10, $sample->Add(4, 6)); 8 } 9 10 public function test_sub() { 11 $sample = new PictureBook\PictureBook(); 12 $this->assertEquals(1, $sample->Sub(7, 6)); 13 } 14} 15
pbook/composer.json
php
1{ 2 "require": { 3 "monolog/monolog": "^1.25" 4 }, 5 "require-dev": { 6 "phpunit/phpunit": "^9.0" 7 } 8} 9 10
pbook/vendor/bin/phpunit
php
1#!/usr/bin/env php 2<?php declare(strict_types=1); 3/* 4 * This file is part of PHPUnit. 5 * 6 * (c) Sebastian Bergmann <sebastian@phpunit.de> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12if (version_compare('7.3.0', PHP_VERSION, '>')) { 13 fwrite( 14 STDERR, 15 sprintf( 16 'This version of PHPUnit is supported on PHP 7.3, PHP 7.4, and PHP 8.0.' . PHP_EOL . 17 'You are using PHP %s (%s).' . PHP_EOL, 18 PHP_VERSION, 19 PHP_BINARY 20 ) 21 ); 22 23 die(1); 24} 25 26if (!ini_get('date.timezone')) { 27 ini_set('date.timezone', 'UTC'); 28} 29 30foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) { 31 if (file_exists($file)) { 32 define('PHPUNIT_COMPOSER_INSTALL', $file); 33 34 break; 35 } 36} 37 38unset($file); 39 40if (!defined('PHPUNIT_COMPOSER_INSTALL')) { 41 fwrite( 42 STDERR, 43 'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL . 44 ' composer install' . PHP_EOL . PHP_EOL . 45 'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL 46 ); 47 48 die(1); 49} 50 51$options = getopt('', array('prepend:')); 52 53if (isset($options['prepend'])) { 54 require $options['prepend']; 55} 56 57unset($options); 58 59require PHPUNIT_COMPOSER_INSTALL; 60 61PHPUnit\TextUI\Command::main(); 62
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/30 06:53
2020/03/30 07:24 編集
2020/03/30 10:57