testng执行case时报错,倒腾了很久才找到解决方法,记录下。
报错内容:
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
怀疑是maven使用的TestNG跟eclipse使用的TestNG不一致造成的(试验了下没成功,后续没研究。我用的最新的6.9.11)
又怀疑可能是testng新版本有问题,要用老版本才行(试了,可以解决问题。)
解决方法:
在线安装
1)eclipse中新版本testng插件进行卸载
eclipse:help——》installation details:找到testng进行卸载
2)eclipse中安装旧插件,我安装了6.8.22
3)maven的pom文件中修改版本6.8.21(6.8.22报错)
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.21</version>
<scope>test</scope>
</dependency>
离线安装
首先下载testng离线包: http://pan.baidu.com/s/1hrEaX6k
1. 将解压后的文件..\eclipse-testng离线包\features\org.testng.eclipse_6.9.9.201510270734 文件夹 放到 eclipse--》features目录下
2. 将解压后的文件..\eclipse-testng离线包\plugins\org.testng.eclipse_6.9.8.201510130443 文件夹 放到 eclipse--》plugins目录下
3. 重启eclipse
4. 验证是否安装成功,file-->new-->other-->TestNg