我有一个使用Jasmine和WebdriverIO运行其测试的应用程序,我想在CircleCI中对其进行自动化。我一般来说都是测试的新手,所以不确定该怎么做。
这就是我所知道的:
import tkinter as tk
from tkinter import *
class WINDOW():
def __init__(self):
self.Settings_Window()
def Settings_Window(self):
self.settings_window = tk.Tk()
self.settings_window.minsize(200,200)
self.entry = Entry(self.settings_window)
self.entry.pack()
self.entry2 = Entry(self.settings_window)
self.entry2.pack()
self.label1input = StringVar()
self.label = Label(self.settings_window,textvariable=self.label1input, bg='yellow')
self.label.pack(expand='yes',fill='x')
self.label2input = StringVar()
self.label2 = Label(self.settings_window, textvariable=self.label2input, bg='yellow')
self.label2.pack(expand='yes', fill='x')
self.button = Button(self.settings_window,text='SETUP1',command=self.Next)
self.button.pack()
self.button2 = Button(self.settings_window,text='SETUP2',command=self.Next2)
self.button2.pack()
self.settings_window.mainloop()
def Next(self):
self.number=1
self.Return_Label(self.number)
def Next2(self):
self.number=2
self.Return_Label(self.number)
def Return_Label(self,number):
self.entry_field_value = self.entry.get()
print(self.entry_field_value)
#self.label1input.set(self.entry_field_value)
setattr(self,'label'+str(number)+'input.set',self.entry_field_value)
window=WINDOW()
npm test
开头)npm start
命令使用该端口)这是我不完全了解的内容:
答案 0 :(得分:0)
为了清楚地回答您的问题,我将参考以下每个命令:
npm test
npm start selenium
npm start app
问题/答案:
在本地,这需要3个终端同时运行,是否可以使用CircleCI做到这一点?
是的。您只需要在background
设置为true的情况下启动一个过程
即要在后台启动Selenium,您可以运行以下命令
- run:
name: Start Selenium in background
command: |
npm start selenium
background: true
在开始一个过程之后,但在使用它之前,请等待该过程在给定端口上准备就绪
- run:
name: Waiting for Selenium server to be ready
command: |
for i in `seq 1 10`;
do
nc -z localhost 4444 && echo Success && exit 0
echo -n .
sleep 1
done
echo Failed waiting for Selenium && exit 1
请注意,如果您在上述命令中替换了4444,则可以等待另一个端口上的进程
我如何知道p4444和p80何时可以进行测试,或者在测试完成后取消它们?
您的CircleCi命令可能如下所示
- run:
name: Start Selenium in background
command: |
npm start selenium
background: true
- run:
name: Start App in background
command: |
npm start app
background: true
- run:
name: Waiting for Selenium server to be ready
command: |
for i in `seq 1 10`;
do
nc -z localhost 4444 && echo Success && exit 0
echo -n .
sleep 1
done
echo Failed waiting for Selenium && exit
- run:
name: Waiting for App server to be ready
command: |
for i in `seq 1 10`;
do
nc -z localhost 80 && echo Success && exit 0
echo -n .
sleep 1
done
echo Failed waiting for Selenium && exit
- run:
name: Run Tests
command: |
npm test
您提出了一个单独的问题-测试完成后,如何取消端口4444和80上的进程?您真的不需要。测试作业完成后,将丢弃容器,并且辅助应用程序将停止。
但是,如果要停止这些进程以运行其他一些作业步骤,则可以运行kill命令(如果不清楚,我可以详细说明)
我是Docker还是CircleCI问题?
在了解如何在CircleCi中运行一系列命令时,这似乎只是一个问题
如果按照上述步骤操作,您应该可以实现目标。