我尝试在laravel中编写测试,但我甚至无法运行示例测试,bcs我得到错误:
λ phpunit
PHP Fatal error: Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1042
Stack trace:
#0 E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(163): PHPUnit_TextUI_TestRunner->handleConfiguration(Array)
#1 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
#2 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#3 E:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
#4 {main}
thrown in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1042
Fatal error: Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1042
Stack trace:
#0 E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(163): PHPUnit_TextUI_TestRunner->handleConfiguration(Array)
#1 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
#2 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
#3 E:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
#4 {main}
thrown in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1042
当然,这是在下载laravel之后发生的。
Laravel版本:5.3 PHPUnit:5.0
答案 0 :(得分:3)
如果你在多个项目中使用phpunit,那么通常更容易弄不到全局安装的phpunit,而是从你项目的供应商文件夹中运行它。
您可以使用以下方式检查项目:
joe
(如果您看到composer info phpunit/phpunit
,那么我会[InvalidArgumentException] Package phpunit/phpunit not found
)
由于Laravel includes phpunit by default您很可能会运行
composer require phpunit/phpunit --dev
以及
./vendor/bin/phpunit …
您可以确定您正在运行该项目的composer.json中指定的phpunit版本。
答案 1 :(得分:1)
在升级包含phpunit的Laravel依赖项之前,我得到了同样的错误。
此更新提供了PHPUnit的5.7.6版而不是5.6版。*。
如果您使用计算机路径的PHPUnit,它将为您提供此错误。
我认为它将被修复,但目前您可以通过在项目根目录上编写php vendor/bin/phpunit
来使用Composer供应商中包含的二进制文件来执行PHPUnit。对我而言,它可以尝试。
答案 2 :(得分:0)
正如@ julien-metral所说,在您的计算机上全局安装的PHPUnit版本早于Laravel 5.4中使用的版本。您可以通过编辑public class RespondentController : Controller
{
private RespondentBINUSEntities db = new RespondentBINUSEntities();
public ActionResult Create()
{
ViewBag.CITY_ID = new SelectList(db.LTCITies, "CITY_ID", "CITY_NAME", 1);
var entry = new Models.TRRESPONDENT
{
ENTRY_DATE = DateTime.Now,
AUDIT_TIME = DateTime.Now,
};
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "RESPONDENT_ID,BC_ID,BINUSIAN_ID,FULL_NAME,EMAIL,PHONE_NUMBER,ADDRESS,CITY_ID,ZIP_CODE,SOURCE_ID,ENTRY_DATE,PACKAGE,AUDIT_USER_NAME,AUDIT_TIME,AUDIT_ACTIVITY")] TRRESPONDENT tRRESPONDENT)
{
if (ModelState.IsValid)
{
db.TRRESPONDENTs.Add(tRRESPONDENT);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.CITY_ID = new SelectList(db.LTCITies, "CITY_ID", "CITY_NAME", tRRESPONDENT.CITY_ID);
return View(tRRESPONDENT);
}
}
文件并将~/.composer/composer.json
依赖关系版本更改为
phpunit/phpunit
之后你应该运行"phpunit/phpunit": "~5.0",
。
答案 3 :(得分:0)
如果你在Windows中。只需在phpunit.xml附近创建phpunit.bat,然后将此脚本放入phpunit.bat。
CALL vendor \ bin \ phpunit
这就是全部。然后尝试运行phpunit。