update README.md

This commit is contained in:
Chenx221 2024-06-14 16:29:27 +08:00
parent 7ede6c1262
commit bc5ef9d0b2
Signed by: chenx221
GPG Key ID: D7A9EC07024C3021

224
README.md
View File

@ -9,6 +9,7 @@
这是一个基于[Yii 2](https://www.yiiframework.com/) PHP框架设计的网盘系统作为我的毕业设计作业它具备一些网盘该有的功能。
项目基于Yii 2 基础项目模板构建,部分使用了模板内容。
[DEMO演示站](https://demo.chenx221.cyou:9443/)
[![Yii2](https://img.shields.io/badge/Powered_by-Yii_Framework-green.svg?style=flat)](https://www.yiiframework.com/)
@ -89,22 +90,22 @@ Google Analysis、Microsoft Clarify集成
计划实现的功能
-------------------
init setup page(暂无计划)
None
开发环境
------------
Windows 11 Pro (22631.3527) / Debian 12
Windows 11 / Debian 12
PhpStorm 2024.1.1
PhpStorm 2024.1.3
PHP 8.3.7 / 8.2.18 (这个项目需要PHP>=8.2)
PHP 8.3.8 / 8.2.18 (这个项目需要PHP>=8.2)
MariaDB 11.3.2 / 10.11.6
Apache 2.4.59
Apache 2.4.59.1
Garnet 1.0.8 / Redis 7.0.15
Garnet 1.0.13 / Redis 7.0.15
环境搭建
------------
@ -118,7 +119,9 @@ Docker自己装
```bash
sudo docker build -t chenx2210/chenx221-yii2-netdisk .
```
```bash
sudo docker network create my-network
sudo docker run -d --name mariadb-container \
-v /root/db.sql:/docker-entrypoint-initdb.d/db.sql \
@ -139,7 +142,7 @@ sudo docker run -d -p 9443:443 \
--restart always \
chenx2210/chenx221-yii2-netdisk
```
.env
docker安装时.env
```
DB_HOST=mariadb-container:3306
RD_HOST=redis-container
@ -420,112 +423,181 @@ sudo -u www-data composer install
```
#### 额外说明
预留了一个管理员账户
SQL中留了个管理员账户
username:admin
password:administrator
TESTING
-------
#### 后面的内容还没写好,先注释
[//]: # (TESTING)
Tests are located in `tests` directory. They are developed with [Codeception PHP Testing Framework](https://codeception.com/).
By default, there are 3 test suites:
[//]: # (-------)
- `unit`
- `functional`
- `acceptance`
[//]: # ()
[//]: # (Tests are located in `tests` directory. They are developed with [Codeception PHP Testing Framework](https://codeception.com/).)
Tests can be executed by running
[//]: # (By default, there are 3 test suites:)
```
vendor/bin/codecept run
```
[//]: # ()
[//]: # (- `unit`)
The command above will execute unit and functional tests. Unit tests are testing the system components, while functional
tests are for testing user interaction. Acceptance tests are disabled by default as they require additional setup since
they perform testing in real browser.
[//]: # (- `functional`)
[//]: # (- `acceptance`)
### Running acceptance tests
[//]: # ()
[//]: # (Tests can be executed by running)
To execute acceptance tests do the following:
[//]: # ()
[//]: # (```)
1. Rename `tests/acceptance.suite.yml.example` to `tests/acceptance.suite.yml` to enable suite configuration
[//]: # (vendor/bin/codecept run)
2. Replace `codeception/base` package in `composer.json` with `codeception/codeception` to install full-featured
version of Codeception
[//]: # (```)
3. Update dependencies with Composer
[//]: # ()
[//]: # (The command above will execute unit and functional tests. Unit tests are testing the system components, while functional)
```
composer update
```
[//]: # (tests are for testing user interaction. Acceptance tests are disabled by default as they require additional setup since)
4. Download [Selenium Server](https://www.seleniumhq.org/download/) and launch it:
[//]: # (they perform testing in real browser. )
```
java -jar ~/selenium-server-standalone-x.xx.x.jar
```
[//]: # ()
[//]: # ()
[//]: # (### Running acceptance tests)
In case of using Selenium Server 3.0 with Firefox browser since v48 or Google Chrome since v53 you must download [GeckoDriver](https://github.com/mozilla/geckodriver/releases) or [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) and launch Selenium with it:
[//]: # ()
[//]: # (To execute acceptance tests do the following: )
```
# for Firefox
java -jar -Dwebdriver.gecko.driver=~/geckodriver ~/selenium-server-standalone-3.xx.x.jar
[//]: # ()
[//]: # (1. Rename `tests/acceptance.suite.yml.example` to `tests/acceptance.suite.yml` to enable suite configuration)
# for Google Chrome
java -jar -Dwebdriver.chrome.driver=~/chromedriver ~/selenium-server-standalone-3.xx.x.jar
```
[//]: # ()
[//]: # (2. Replace `codeception/base` package in `composer.json` with `codeception/codeception` to install full-featured)
As an alternative way you can use already configured Docker container with older versions of Selenium and Firefox:
[//]: # ( version of Codeception)
```
docker run --net=host selenium/standalone-firefox:2.53.0
```
[//]: # ()
[//]: # (3. Update dependencies with Composer )
5. (Optional) Create `yii2basic_test` database and update it by applying migrations if you have them.
[//]: # ()
[//]: # ( ```)
```
tests/bin/yii migrate
```
[//]: # ( composer update )
The database configuration can be found at `config/test_db.php`.
[//]: # ( ```)
[//]: # ()
[//]: # (4. Download [Selenium Server](https://www.seleniumhq.org/download/) and launch it:)
6. Start web server:
[//]: # ()
[//]: # ( ```)
```
tests/bin/yii serve
```
[//]: # ( java -jar ~/selenium-server-standalone-x.xx.x.jar)
7. Now you can run all available tests
[//]: # ( ```)
```
# run all available tests
vendor/bin/codecept run
[//]: # ()
[//]: # ( In case of using Selenium Server 3.0 with Firefox browser since v48 or Google Chrome since v53 you must download [GeckoDriver](https://github.com/mozilla/geckodriver/releases) or [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) and launch Selenium with it:)
# run acceptance tests
vendor/bin/codecept run acceptance
[//]: # ()
[//]: # ( ```)
# run only unit and functional tests
vendor/bin/codecept run unit,functional
```
[//]: # ( # for Firefox)
### Code coverage support
[//]: # ( java -jar -Dwebdriver.gecko.driver=~/geckodriver ~/selenium-server-standalone-3.xx.x.jar)
By default, code coverage is disabled in `codeception.yml` configuration file, you should uncomment needed rows to be able
to collect code coverage. You can run your tests and collect coverage with the following command:
[//]: # ( )
[//]: # ( # for Google Chrome)
```
#collect coverage for all tests
vendor/bin/codecept run --coverage --coverage-html --coverage-xml
[//]: # ( java -jar -Dwebdriver.chrome.driver=~/chromedriver ~/selenium-server-standalone-3.xx.x.jar)
#collect coverage only for unit tests
vendor/bin/codecept run unit --coverage --coverage-html --coverage-xml
[//]: # ( ``` )
#collect coverage for unit and functional tests
vendor/bin/codecept run functional,unit --coverage --coverage-html --coverage-xml
```
[//]: # ( )
[//]: # ( As an alternative way you can use already configured Docker container with older versions of Selenium and Firefox:)
You can see code coverage output under the `tests/_output` directory.
[//]: # ( )
[//]: # ( ```)
[//]: # ( docker run --net=host selenium/standalone-firefox:2.53.0)
[//]: # ( ```)
[//]: # ()
[//]: # (5. (Optional) Create `yii2basic_test` database and update it by applying migrations if you have them.)
[//]: # ()
[//]: # ( ```)
[//]: # ( tests/bin/yii migrate)
[//]: # ( ```)
[//]: # ()
[//]: # ( The database configuration can be found at `config/test_db.php`.)
[//]: # ()
[//]: # ()
[//]: # (6. Start web server:)
[//]: # ()
[//]: # ( ```)
[//]: # ( tests/bin/yii serve)
[//]: # ( ```)
[//]: # ()
[//]: # (7. Now you can run all available tests)
[//]: # ()
[//]: # ( ```)
[//]: # ( # run all available tests)
[//]: # ( vendor/bin/codecept run)
[//]: # ()
[//]: # ( # run acceptance tests)
[//]: # ( vendor/bin/codecept run acceptance)
[//]: # ()
[//]: # ( # run only unit and functional tests)
[//]: # ( vendor/bin/codecept run unit,functional)
[//]: # ( ```)
[//]: # ()
[//]: # (### Code coverage support)
[//]: # ()
[//]: # (By default, code coverage is disabled in `codeception.yml` configuration file, you should uncomment needed rows to be able)
[//]: # (to collect code coverage. You can run your tests and collect coverage with the following command:)
[//]: # ()
[//]: # (```)
[//]: # (#collect coverage for all tests)
[//]: # (vendor/bin/codecept run --coverage --coverage-html --coverage-xml)
[//]: # ()
[//]: # (#collect coverage only for unit tests)
[//]: # (vendor/bin/codecept run unit --coverage --coverage-html --coverage-xml)
[//]: # ()
[//]: # (#collect coverage for unit and functional tests)
[//]: # (vendor/bin/codecept run functional,unit --coverage --coverage-html --coverage-xml)
[//]: # (```)
[//]: # ()
[//]: # (You can see code coverage output under the `tests/_output` directory.)