嗨,我是jenkin的新手,正在尝试配置jenkins以运行编码的UI测试。 我正在使用Windows Batch命令行在jenkins中运行编码的ui。
当我执行该命令时,命令已成功执行,但所有测试均因此错误消息而失败。 “为测试类CodedUITestProject5.CodedUITest1调用初始化方法时出错:Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException:要运行与桌面交互的测试,必须将测试代理设置为作为交互式进程运行。有关更多信息,请参阅“如何:设置测试代理以运行与桌面交互的测试”
下面是我的窗口批处理命令 cd C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE mstest.exe / testcontainer:“ C:\ Users \ pmallika \ Documents \ Visual Studio 2015 \ Projects \ CodedUITestProject5 \ CodedUITestProject5 \ bin \ Debug \ CodedUITestProject5.dll” /结果文件:“ C:\ Users \ pmallika \ Documents \ Visual Studio 2015 \ Projects \ CodedUITestProject5 \ pp.trx“
Jenkins的控制台输出
正在加载C:\ Users \ pmallika \ Documents \ Visual Studio 2015 \ Projects \ CodedUITestProject5 \ CodedUITestProject5 \ bin \ Debug \ CodedUITestProject5.dll ... 开始执行...
结果顶级测试 ------- --------------- CodedUITestProject5.CodedUITest1.CodedUITestMethod1失败 CodedUITestProject5.CodedUITest1.CodedUITestMethod2失败 CodedUITestProject5.CodedUITest1.CodedUITestMethod3失败 0/3个测试通过,3个失败
测试运行失败。 失败3
总计3
我厌倦了使用MSTEST插件运行已编码的ui测试,
我用相同的命令行累了运行单元测试,并且成功运行了。
答案 0 :(得分:1)
您正在字符串中搜索两个单独的项目。如果你把它们分成一个列表,那么下面的代码会找到它们。
lk = [ 'Motor','101' ]
s1 = [ 'Device Motor_101 is very high',
'101Motor Device is very high',
'Motor device 101 is very is high' ]
for i, a in enumerate( s1 ):
result = -1
for b in a.split():
if lk[0] in b:
result = i
if lk[1] in b:
if result > -1:
print( f'found in {a}' )
此代码将搜索并找到不止两个项目
lk = [ 'Motor','101' ]
ln = len( lk )
s1 = [ 'Device Motor_101 is very high',
'101Motor Device is very high',
'Motor device 101 is very is high' ]
found = []
for i, a in enumerate( s1 ):
for b in a.split():
result = -1
for gp in range( ln ):
if lk[ gp ] in b:
result += 1
if result > -1 and found.count( a ) == 0:
found.append( a )
print( f'found in {a}' )
print( f'{found}' )
好的,我发现重复的单词会导致误报,所以... 这是我的第三次尝试
lk = [ 'sky', '101', 'Motor', 'very' ]
ln = len( lk )
s1 = [ 'Device Motor_101 is very high in sky',
'101Motor Device is sky sky very',
'Motor device is very is high very very' ]
found = []
for i, a in enumerate( s1 ):
result = 0
sa = a.split( )
for b in a.split():
for gp in range( ln ):
if lk[ gp ] in b:
if b in sa:
sa.remove( b )
result += 1
if result == ln-1:
found.append( a )
print( f'{found}' )
答案 1 :(得分:0)
您需要分别搜索 Motor
和 101
,如果两者都存在,则返回状态。
def get_match(s):
lookup = ['Motor', '101']
count = 0
for i in lookup:
if i in s:
count += 1
if count == len(lookup):
return 'Strings Present'
return 'Not Present'
print(get_match('Device Motor_101 is very high'))
print(get_match('Stackoverflow 101'))
print(get_match('101Motor Device is very high'))
print(get_match('Motor device 101 is very is high'))
print(get_match('Motorbikes are good'))
Output:
Strings Present
Not Present
Strings Present
Strings Present
Not Present