我一直试图让Bamboo使用代码测试.我正在使用codeception来测试symfony项目中的代码.
经过一些研究,我发现了一篇关于如何使用代码设置Jenkins的文章.
一旦阅读,我发现我应该使用Ant来运行运行测试的代码命令.
问题是我真的不知道放在哪里.本文解释了新Ant任务的所有字段,但似乎没有任何效果.
有人可以帮帮我吗?
我没有看到明确的方法来做到这一点,虽然我可以看到它在文档中被重复多次,具体来说:
使用yii migrate工具将测试数据库升级到最新版本;
发现于http://www.yiiframework.com/doc-2.0/guide-test-fixture.html#summary(仅举例)
会发生什么,无论我如何配置_console.php和_config.php在我的tests/unit文件夹中,如果我运行迁移工具正在拿起主app db:
$ cd tests/unit
$ ../../yii migrate/up
Yii Migration Tool (based on Yii v2.0.0-dev)
No new migration found. Your system is up-to-date.
Run Code Online (Sandbox Code Playgroud)
是的,测试数据库已正确配置(运行测试将抛出错误,表示没有表).我显然可以自己创建数据库结构,但这都是为了让这个功能正常工作.
我目前正在使用通过composer安装的Basic应用程序.
我正在使用codeception(使用codecoverage)来检查我使用Yii2框架编写的应用程序的代码覆盖率.因为我的mac上的标准php安装没有启用xcode,所以我激活了它,在我的php.ini中添加了一个zend_module行.代码覆盖现在似乎有效,但速度很慢.是的我知道激活的xdebug和coverage生成需要一些时间,但我认为这是不正常的:即使只检查对象初始化的简单单元测试也需要15分钟.
我认为它不是cpu或ram问题而不是配置问题.
我开始代码覆盖:
codeception run unit --coverage-html
Run Code Online (Sandbox Code Playgroud)
我发现的事情:无论它有多大,第一次测试总是快速运行.第二个测试要慢得多(无论测试是什么),第三个测试更慢.我该如何追踪?我想发现问题.
再说一遍:我知道codecoverage会减慢测试速度,但是15分钟的简单测试并不正常.
//编辑:大约运行的测试 15分钟,需要1秒而不启用代码覆盖.
codecept -c src run acceptance在alpine linux上执行命令时输出如下错误:
无 base64:无法识别的选项:w BusyBox v1.30.1 (2019-06-12 17:51:55 UTC) 多调用二进制。
用法:base64 [-d] [文件]
Base64 编码或解码 FILE 到标准输出 -d 解码数据
我看不到 codecept 正在执行的命令。
我试图在 apk 中添加 base64,但 base64 不存在。
Dockerfile:
FROM node:10-alpine AS node
FROM php:7.1-fpm-alpine
ENV GITHUB_OAUTH_TOKEN test
ENV COMPOSER_ASSET_VERSION 1.3.1
ENV DOCKERIZE_VERSION v0.6.1
ENV PATH=~/.composer/vendor/bin:$PATH
# install packages
RUN apk add -U --no-cache \
curl-dev \
libxml2-dev \
libpng-dev \
libjpeg-turbo-dev \
zip \
libzip-dev \
unzip \
gmp-dev \
python \
make \ …Run Code Online (Sandbox Code Playgroud) 我总是在 Codeception YML 文件中看到这种事情:
modules:
enabled:
- PhpBrowser:
url: '%URL%'
Run Code Online (Sandbox Code Playgroud)
如何从命令行将“URL”传递给 Codeception?或者任何其他方式!
我在WAMP平台上运行最新版本的Codeception - 我的接受是非常基本的,但工作正常(见下文):
$I = new WebGuy($scenario);
$I->wantTo('Log in to the website');
$I->amOnPage('/auth/login');
$I->fillField('identity','admin@admin.com');
$I->fillField('password','password');
$I->click('Login');
Run Code Online (Sandbox Code Playgroud)
简而言之 - 它检查页面是'auth/login'填写2个表单字段并单击登录按钮.这没有任何问题.
这是我相同的功能测试:
$I = new TestGuy($scenario);
$I->wantTo('perform actions and see result');
$I->amOnPage('/auth/login');
$I->fillField('identity','admin@admin.com');
$I->fillField('password','password');
$I->click('Login');
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行它时,我得到以下错误(不是完整的错误,但足以理解问题):
1) Couldn't <-[35;1mperform actions and see result<-
[0m in <-[37;1LoginCept.php<-[0m <-41;37mRuntimeException:
Call to undefined method TestGuy::amOnPage<-[0m.......
Run Code Online (Sandbox Code Playgroud)
我的验收套件启用了"PhpBrowser"和"WebHelper"模块,功能套件启用了"FileSystem"和"TestHelper"(在acceptance.suite.yml和functional.suite.yml文件中)
显然amOnPage()函数是问题 - 然而我被引导相信amOnPage()应该在验收和功能测试中工作?或者我错了 - 也 - 有人可以解释数字的含义,例如'< - [35; 1m'出现
更新:我尝试将'WebHelper'模块添加到functional.suite.yml但我没有看到在TestGuy.php文件中自动生成amOnPage() - 任何想法?
我的配置文件如下:
WebGuy
class_name: WebGuy
modules:
enabled:
- PhpBrowser
- WebHelper
config:
PhpBrowser:
url: 'http://v3.localhost/'
Run Code Online (Sandbox Code Playgroud)
TestGuy
class_name: …Run Code Online (Sandbox Code Playgroud) command-line unit-testing acceptance-testing functional-testing codeception
希望有人可以帮助/指出我的答案....
我正在使用Codeception来测试我们的网站.一切都很好,除了我找不到悬停在菜单元素上以显示菜单其余部分的方法.
使用watir和webdriver我能够使用
browser.div(:类 - > "菜单项目-1")悬停
我找到了 moveMouseOver,但它似乎没有用.我试过了
moveMouseOver('//div/div/div/div/ul/li[2]/a')
Run Code Online (Sandbox Code Playgroud)
和
moveMouseOver(".菜单项-1' )
经过多年编写单元测试后,我才开始使用CodeceptionPHPUnit.有一件事让我烦恼,我无法找到一种方法来控制调用测试的顺序.
在纯旧的PHPUnit我手动构建测试结构,如下所示:
$suite = new PHPUnit_Framework_TestSuite();
$suite->addTest('MyFirstTest');
$suite->addTest('MySecondTest');
Run Code Online (Sandbox Code Playgroud)
并且将按照它们添加到套件中的顺序调用测试.Codeception另一方面,似乎是在遍历目录并运行它可以找到的每个测试.
我希望能够在两个级别上控制测试的顺序:
unit tests之前acceptance tests)PHPUnit构建套件类似)广告.2:假设我在acceptance目录中有两个测试:
AbcCept.php
WebGuy.php
XyzCept.php
Run Code Online (Sandbox Code Playgroud)
我希望能够运行XyzCept.php之前AbcCept.php.这甚至可能吗?
并且预测挑剔的评论:是的,我知道测试应该能够以任何顺序运行,而不是彼此依赖,但这不是我要求的.
是否有一个工具可以记录用户与DOM元素的交互,以便在创建自动化测试时使用(我使用的是Codeception和Laravel Dusk,但任何在Selenium中扎根的工具都很好).我正在寻找记录序列的东西并找回可能包含以下内容的列表:
/contact#nametextarea[name=message]textarea[name=message]input[type=submit]/contact?thanks我看到GhostInspector,但它直接绑定到一个基于云的公司,我不希望这样,我想对插件的功能有一定程度的控制,并且能够记录不在公共网络上的页面.
我可以看到构建一个记录每个动作非常重要的工具 - 鼠标移动事件,焦点,文本选择,键盘事件,滚动事件等.理想情况下,我可以说"在输入上听取每个焦点,点击和键盘事件或者textarea或按钮或选择或选项"并注意网址更改.
这样的工具存在吗?无论它真正运行什么浏览器堆栈,只需要用户(可能是新手用户)的能力,去网站,点击记录,做一些动作,并找回发生的事情列表.
争论我的问题的瞬间downvotes"不是关于编程"促使我改进我的问题.我不认为该工具的性质 - 它可能是编程方法?使用浏览器监听所有事件并以某种方式记录它们的方法?可能是Chrome扩展程序?可能是一个框架?可能是图书馆吗?我正在寻找程序员的经验来帮助我完成我正在努力完成的编程任务.
当我尝试运行单元测试时,出现此错误
PHP警告:PHP启动:无法加载动态库'bz2'(试过:\xampp\php\ext\bz2(找不到指定的模块。),\xampp\php\ext\php_bz2.dll(指定的模块无法找到。)) 在 Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: \xampp\php\ext\curl (The specified module could not be found.), \xampp \php\ext\php_curl.dll (The specified module could not be found.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'fileinfo' (tried: \xampp\php\ext\fileinfo (找不到指定的模块。), \xampp\php\ext\php_fileinfo.dll (The specified module could not be found.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'gd2' (试过:\xampp\php\ext\gd2 (The specified module …
codeception ×10
php ×6
unit-testing ×3
phpunit ×2
yii2 ×2
alpine-linux ×1
ant ×1
bamboo ×1
command-line ×1
docker ×1
hover ×1
laravel-dusk ×1
mouse ×1
selenium ×1
testing ×1
xampp ×1
xdebug ×1