- 浏览: 2539907 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
SuperPlan(1)TaoBao Winner - Prepare the Play
1. Upgrade the play framework
First steps, update the play framework to the latest version. 2.1.1
>play new taobaowinner
>cd taobaowinner
>play eclipse
Run and Verify the environments.
>play
>run
It works fine.
2. Prepare the Sample
But I want to take some old projects as references. So I want to upgrade the old projects to new version.
>vi project/plugins.sbt
// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.1.0")
>vi project/Build.scala
//import PlayProject._
import play.Project._
//val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
val main = play.Project(appName, appVersion, appDependencies).settings(
>vi project/build.properties
sbt.version=0.12.2
Once finish the configuration changes, clean and recompile the project.
>play clean
>play run
>play eclipse
Update the IDE to view the codes.
http://download.scala-ide.org/nightly-scala-ide-juno-210x
Compile Error Message
not found: object anorm
not found: value DB
not found: value get
object db is not a member of package play.api
Solution:
Change the import packages lines as follow:
import anorm._
import anorm.SqlParser._
import play.api.Play.current
import play.api.db.DB
3. Build and Learn from computer-database
Seq is a collection, Pk is the primary key of the table in anorm
I understand the Models part now. It is much easier, just directly use the SQL, scala is really the powerful language.
Try to understand the Test Case
http://www.playframework.com/documentation/2.1.1/ScalaTest
Test Your Application
Run all the test cases
play>test
Run the specified test case
play>test-only com.sillycat.MySpec
Using Specs2
http://etorreborre.github.io/specs2/
Download the sample and understand the unit tests.
>git clone https://github.com/etorreborre/specs2-test.git
>mvn eclipse:eclipse
Import to eclipse and then we can see a lot of samples.
Scala Function Test
http://www.playframework.com/documentation/2.1.1/ScalaTest
http://www.playframework.com/documentation/2.1.1/ScalaFunctionalTest
The test class should be look like this:
package unit
import org.specs2.mutable._
class HelloWorldUnitSpec extends Specification {
"The 'Hello world' string" should {
"contain 11 characters" in {
"Hello world" must have size (11)
}
"start with 'Hello'" in {
"Hello world" must startWith("Hello")
}
"end with 'world'" in {
"Hello world" must endWith("world")
}
}
}
And I will run the command
play>test-only unit.HelloWorldUnitSpec
I suddenly found that my play version is 2.1.0, I plan to update that to 2.1.1.
>play clean
>play eclipse
Running multiple examples inside the same Specification
"Computer model" should {
"be retrieved by id" in {
running(FakeApplication(additionalConfiguration = inMemoryDatabase())) {
val Some(macintosh) = Computer.findById(21)
macintosh.name must equalTo("Macintosh")
macintosh.introduced must beSome.which(dateIs(_, "1984-01-24"))
}
}
"be listed along its companies" in {
running(FakeApplication(additionalConfiguration = inMemoryDatabase())) {
val computers = Computer.list()
computers.total must equalTo(574)
computers.items must have length(10)
}
}
…snip…
All the tests are based on the memory database and it is based on the SQL files.
Unit Testing Controllers
"Application" should {
"redirect to the computer list on /" in {
valresult = controllers.Application.index(FakeRequest())
status(result) must equalTo(SEE_OTHER)
redirectLocation(result) must beSome.which(_ == "/computers")
}
…snip…
Integration Test
"Application" should {
"work from within a browser" in {
running(TestServer(3333), HTMLUNIT) { browser =>
browser.goTo("http://localhost:3333/")
browser.$("header h1").first.getText must equalTo("Play 2.0 sample application — Computer database")
browser.$("section h1").first.getText must equalTo("574 computers found")
browser.$("#pagination li.current").first.getText must equalTo("Displaying 1 to 10 of 574")
browser.$("#pagination li.next a").click()
browser.$("#pagination li.current").first.getText must equalTo("Displaying 11 to 20 of 574")
browser.$("#searchbox").text("Apple")
browser.$("#searchsubmit").click()
References:
http://sillycat.iteye.com/blog/1753450
http://sillycat.iteye.com/blog/1754139
http://sillycat.iteye.com/blog/1754381
http://sillycat.iteye.com/blog/1757098
http://sillycat.iteye.com/blog/1774803
http://www.playframework.com/documentation/2.1.0/SBTSubProjects
http://www.playframework.com/documentation/2.1.0/Migration
1. Upgrade the play framework
First steps, update the play framework to the latest version. 2.1.1
>play new taobaowinner
>cd taobaowinner
>play eclipse
Run and Verify the environments.
>play
>run
It works fine.
2. Prepare the Sample
But I want to take some old projects as references. So I want to upgrade the old projects to new version.
>vi project/plugins.sbt
// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.1.0")
>vi project/Build.scala
//import PlayProject._
import play.Project._
//val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
val main = play.Project(appName, appVersion, appDependencies).settings(
>vi project/build.properties
sbt.version=0.12.2
Once finish the configuration changes, clean and recompile the project.
>play clean
>play run
>play eclipse
Update the IDE to view the codes.
http://download.scala-ide.org/nightly-scala-ide-juno-210x
Compile Error Message
not found: object anorm
not found: value DB
not found: value get
object db is not a member of package play.api
Solution:
Change the import packages lines as follow:
import anorm._
import anorm.SqlParser._
import play.api.Play.current
import play.api.db.DB
3. Build and Learn from computer-database
Seq is a collection, Pk is the primary key of the table in anorm
I understand the Models part now. It is much easier, just directly use the SQL, scala is really the powerful language.
Try to understand the Test Case
http://www.playframework.com/documentation/2.1.1/ScalaTest
Test Your Application
Run all the test cases
play>test
Run the specified test case
play>test-only com.sillycat.MySpec
Using Specs2
http://etorreborre.github.io/specs2/
Download the sample and understand the unit tests.
>git clone https://github.com/etorreborre/specs2-test.git
>mvn eclipse:eclipse
Import to eclipse and then we can see a lot of samples.
Scala Function Test
http://www.playframework.com/documentation/2.1.1/ScalaTest
http://www.playframework.com/documentation/2.1.1/ScalaFunctionalTest
The test class should be look like this:
package unit
import org.specs2.mutable._
class HelloWorldUnitSpec extends Specification {
"The 'Hello world' string" should {
"contain 11 characters" in {
"Hello world" must have size (11)
}
"start with 'Hello'" in {
"Hello world" must startWith("Hello")
}
"end with 'world'" in {
"Hello world" must endWith("world")
}
}
}
And I will run the command
play>test-only unit.HelloWorldUnitSpec
I suddenly found that my play version is 2.1.0, I plan to update that to 2.1.1.
>play clean
>play eclipse
Running multiple examples inside the same Specification
"Computer model" should {
"be retrieved by id" in {
running(FakeApplication(additionalConfiguration = inMemoryDatabase())) {
val Some(macintosh) = Computer.findById(21)
macintosh.name must equalTo("Macintosh")
macintosh.introduced must beSome.which(dateIs(_, "1984-01-24"))
}
}
"be listed along its companies" in {
running(FakeApplication(additionalConfiguration = inMemoryDatabase())) {
val computers = Computer.list()
computers.total must equalTo(574)
computers.items must have length(10)
}
}
…snip…
All the tests are based on the memory database and it is based on the SQL files.
Unit Testing Controllers
"Application" should {
"redirect to the computer list on /" in {
valresult = controllers.Application.index(FakeRequest())
status(result) must equalTo(SEE_OTHER)
redirectLocation(result) must beSome.which(_ == "/computers")
}
…snip…
Integration Test
"Application" should {
"work from within a browser" in {
running(TestServer(3333), HTMLUNIT) { browser =>
browser.goTo("http://localhost:3333/")
browser.$("header h1").first.getText must equalTo("Play 2.0 sample application — Computer database")
browser.$("section h1").first.getText must equalTo("574 computers found")
browser.$("#pagination li.current").first.getText must equalTo("Displaying 1 to 10 of 574")
browser.$("#pagination li.next a").click()
browser.$("#pagination li.current").first.getText must equalTo("Displaying 11 to 20 of 574")
browser.$("#searchbox").text("Apple")
browser.$("#searchsubmit").click()
References:
http://sillycat.iteye.com/blog/1753450
http://sillycat.iteye.com/blog/1754139
http://sillycat.iteye.com/blog/1754381
http://sillycat.iteye.com/blog/1757098
http://sillycat.iteye.com/blog/1774803
http://www.playframework.com/documentation/2.1.0/SBTSubProjects
http://www.playframework.com/documentation/2.1.0/Migration
发表评论
-
Stop Update Here
2020-04-28 09:00 310I will stop update here, and mo ... -
NodeJS12 and Zlib
2020-04-01 07:44 467NodeJS12 and Zlib It works as ... -
Docker Swarm 2020(2)Docker Swarm and Portainer
2020-03-31 23:18 361Docker Swarm 2020(2)Docker Swar ... -
Docker Swarm 2020(1)Simply Install and Use Swarm
2020-03-31 07:58 363Docker Swarm 2020(1)Simply Inst ... -
Traefik 2020(1)Introduction and Installation
2020-03-29 13:52 328Traefik 2020(1)Introduction and ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 419Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 428Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 364Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 444VPN Server 2020(2)Docker on Cen ... -
Buffer in NodeJS 12 and NodeJS 8
2020-02-25 06:43 376Buffer in NodeJS 12 and NodeJS ... -
NodeJS ENV Similar to JENV and PyENV
2020-02-25 05:14 464NodeJS ENV Similar to JENV and ... -
Prometheus HA 2020(3)AlertManager Cluster
2020-02-24 01:47 413Prometheus HA 2020(3)AlertManag ... -
Serverless with NodeJS and TencentCloud 2020(5)CRON and Settings
2020-02-24 01:46 330Serverless with NodeJS and Tenc ... -
GraphQL 2019(3)Connect to MySQL
2020-02-24 01:48 242GraphQL 2019(3)Connect to MySQL ... -
GraphQL 2019(2)GraphQL and Deploy to Tencent Cloud
2020-02-24 01:48 443GraphQL 2019(2)GraphQL and Depl ... -
GraphQL 2019(1)Apollo Basic
2020-02-19 01:36 320GraphQL 2019(1)Apollo Basic Cl ... -
Serverless with NodeJS and TencentCloud 2020(4)Multiple Handlers and Running wit
2020-02-19 01:19 306Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(3)Build Tree and Traverse Tree
2020-02-19 01:19 310Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(2)Trigger SCF in SCF
2020-02-19 01:18 285Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(1)Running with Component
2020-02-19 01:17 302Serverless with NodeJS and Tenc ...
相关推荐
作为一种广泛存在于各个领域的竞争现象,关于赢者通吃(winner-take-all)的大部分研究太复杂以至于难以很好地理解该现象。为了用简单的方式解释winner-take-all现象,提出了一个改进的winner-take-all模型,由离散...
在给定的"winner-filter.zip"压缩包文件中,包含了一个名为"维纳滤波器仿真.m"的MATLAB代码文件,这显然是一个用于仿真和分析维纳滤波器性能的程序。MATLAB是一种广泛应用于科学计算、数据分析和工程领域的编程环境...
WINNER-II场景下的信道仿真模型,可用于分析各个场景下的信道参数
SOM网络即自组织特征映射网络,采用竞争学习规则——Winner-Take-All 。网络的输出神经元之间相互竞争以求被激活,结果在每一时刻只有一个输出神经元被激活。这个被激活的神经元称为竞争获胜神经元,而其它神经元的...
WINNER II信道模型的建模与仿真 绍WINNER II信道模型所支持的场景,信道建模方法及信道参数和信道系数产生.
1. **MetaTrader 5平台与AFL_Winner指标** MetaTrader 5(MT5)是由MetaQuotes Software Corp开发的一款多功能交易平台,支持多种金融产品的交易,包括外汇、期货和股票等。它提供了丰富的技术分析工具和自定义指标...
SCM WINNER II Channel Models, D1.1.2 V1.2, IST-4-027756 WINNER II Deliverable
为了解决上述问题,本研究提出了结合Winner-Take-All(WTA)竞争模型和改进的人工势场(Artificial Potential Field,简称APF)路径规划方法的控制策略。WTA竞争模型是一种有效的多机器人竞争问题解决方案,它模拟了...
c语言入门 c语言_leetcode题解486-predict-the-winner.c
winner2信道模型仿真了3D信道模型,里面涉及好多应用场景。可以与现实生活中的场景相匹配
FF Winner-crx插件是一款专为ESPN幻想足球爱好者设计的扩展程序,旨在帮助用户通过计算分数分布来预测比赛的可能赢家。这款插件利用了IBM Watson的先进数据分析能力,为用户提供了一个直观的方式来评估每个球员在...
它具有旨在实现最高内存填充率和有效使用多个计算单元的简单设计,同时仍提供了抵御权衡攻击的防御能力(通过利用最新处理器的缓存和内存组织)。 Argon2具有三个变体:Argon2i,Argon2d和Argon2id。...
在IT行业中,"Winner-gets-all"这个标题可能暗示了一个竞争激烈的环境,特别是在软件开发或者数据分析的场景下,其中胜者通常能获取大部分资源或市场份额。在这个特定的案例中,结合"世界高尔夫协会工作流程"的描述...
ZS-Young-Data-scientist-2018-Winner-Solution-rank-3:ZS年轻数据科学家挑战赛2018
默认情况下,winner-mode 包含在 emacs 中,因为版本 20 但它没有启用。 这是一个制作支持微功能的包的实验。 我有一段时间的想法,我终于要测试了。 安装 这个包裹是果酱。 从果酱安装它 package-install winner-...
在"crispy-octo-winner-client-main"这个文件夹中,我们可能会找到以下关键文件和目录: 1. `index.html`:这是游戏的主页面,通常包含引入JavaScript和CSS文件的链接,以及游戏启动的JavaScript代码。 2. `scripts...
克隆或分叉此存储库: git clone https://github.com/jamigibbs/and-the-winner-is 安装依赖项: npm install 下载并安装桌面在Neo4j桌面上,使用用户neo4j和密码1234创建一个新的图形数据库。 注意:在生产
冠军得主,鸡肉晚餐! :rooster: 输入列表并旋转方向盘,即可每次获得随机赢家。 :crystal_ball: 目录 特征 输入名称或对象列表。 编辑并删除您的列表。 始终使用localStorage访问您最近创建的列表。...
ToneWinner天逸设备说明书
在电子商务领域,组合拍卖(Combinatorial Auction)是一种复杂而有趣的拍卖形式,它允许投标人提交对多个物品的联合出价,而非仅仅对单个物品出价。这种拍卖机制旨在优化资源配置,提高拍卖效率,同时也增加了投标...