在试图用PHPUnit设置Eclipse作为单元测试库时,我陷入了试图运行一个简单测试用例的困境。作为参考,我按照本教程使用PHPUnit/Xdebug/Makegood来设置Eclipse,唯一偏离给出的指导方针是为PHPUnit/Makegood设置以下配置文件:
config.xml:
<phpunit backupGlobals="true"
backupStaticAttributes="false"
cacheTokens="false"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
forceCoversAnnotation="false"
mapTestClassNameToCoveredClassName="false"
printerClass="PHPUnit_TextUI_ResultPrinter"
processIsolation="false"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
strict="false"
verbose="false">
<testsuites>
<testsuite name="My Test Suite">
<directory suffix=".php">/path/to/application/tests/</directory>
</testsuite>
</testsuites>
</phpunit>
现在,问题的根源在于,我似乎无法使用Makegood从Eclipse运行PHPUnit测试。我编写的唯一测试(位于名为test.php的/path/to/Application/test/文件夹中)如下所示(直接取自PHPUnit手册):
<?php
class StackTest extends PHPUnit_Framework_TestCase
{
public function testPushAndPop()
{
$stack = array();
$this->assertEquals(0, count($stack));
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertEquals(1, count($stack));
$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
?>
为了运行测试,我右键单击“tests”文件夹并点击Eclipse中的“runall tests”,它将打印到控制台:
PHPUnit 3.7。15塞巴斯蒂安·伯格曼。
从/path/to/application/config读取配置。xml
时间:0秒,内存:5.00Mb
没有执行任何测试!
现在,当我尝试使用“path/to/application/tests/”目录中的命令“phpunit test.php”从命令行运行这些测试时,我得到以下html" target="_blank">控制台输出:
PHPUnit 3.7。15塞巴斯蒂安·伯格曼。
.
时间:0秒,内存:3.25Mb
OK(1个测试,5个断言)
很明显,我没有正确地告诉Makegood在哪里找到测试文件/如何运行测试,但我似乎无法确定如何解决这个问题。毫无疑问,对于如何在Eclipse中将所有PHPUnit组件装配在一起,我有一个糟糕的心智模型,因此,如果能够帮助我理解该体系结构,我将不胜感激。提前谢谢!
“运行所有测试”无法按照您尝试使用它的方式工作“运行所有测试”运行您选择作为“测试文件夹”之一的所有测试(见下文)
我实际上把我的测试文件夹改成了这个
它只运行RuleData文件夹中的测试。你可以点击任何你喜欢的地方,并且“运行所有测试”将以这种方式运行。如果只想运行文件夹中的测试,只需选择“运行测试”
另外,这是我的phpUnit xml配置,它位于测试目录中。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
backupStaticAttributes="false"
backupGlobals="false"
bootstrap="./../application/third_party/CIUnit/bootstrap_phpunit.php"
cacheTokens="false"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
forceCoversAnnotation="false"
mapTestClassNameToCoveredClassName="false"
printerClass="PHPUnit_TextUI_ResultPrinter"
processIsolation="false"
stopOnError="false"
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
testSuiteLoaderClass="PHPUnit_Runner_StandardTestSuiteLoader"
strict="false"
verbose="true"
>
<php>
<ini name="memory_limit" value="2047M" />
</php>
<testsuites>
<testsuite name="AllTests">
<directory>.</directory>
</testsuite>
</testsuites>
<filter>
<blacklist>
<directory suffix=".php">./../../</directory>
<file></file>
<exclude>
<file></file>
</exclude>
</blacklist>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./../application/models</directory>
<directory suffix=".php">./../application/controllers</directory>
<directory suffix=".php">./../application/libraries</directory>
<directory suffix=".php">./../application/helpers</directory>
<file></file>
<exclude>
<directory suffix="index.php">./../application</directory>
<file></file>
</exclude>
</whitelist>
</filter>
</phpunit>
我已经将其隔离到一个非常简单的测试项目中,该项目除了简单的log4j2test配置使用之外没有其他用途。文件目录结构: 建筑sbt: log4j2.xml内容复制/粘贴从示例在官方留档:https://logging.apache.org/log4j/2.x/manual/configuration.html SimpleMain。斯卡拉: 我跑步与 输出:
我正在学习akka-remoting,这是我的项目看起来 项目结构如下所示 当我在上运行我的项目时,我看到 我错过了什么?谢谢
我在这里给我的课做了注解 此外,还对我的测试方法进行了这样的注解 最后,配置我的build.gradle defaultConfig和依赖项,如下所示
我已经看了所有其他对此的反应,但它们似乎不适用于我。 https://kotlinlang.org/api/latest/kotlin.test/kotlin.test/ 我正在尝试从暂存文件或.kt文件访问它,并且它不在下拉列表中以选择它。 项目正在使用JDK 15。