测试用例运行两次不一次

时间:2016-03-25 17:55:18

标签: python-2.7 nose python-unittest

此测试应该通过调用public void saveButton(View v) { String data = getData(); List<String> linesData; linesData = new ArrayList<>(); if (data != null) for(int i = 0; i < data.split("\n").length; i++){ linesData.add(data.split("\n")[i]); } for (int i = 0; i < linesData.size(); i++) { if (linesData.get(i).contains(personName)) linesData.remove(i); } String submit = personNameTV.getText().toString() + ":" + extraInfoTV.getText().toString() + ":" + websitesTV.getText().toString(); linesData.add(submit); String finalSubmit = ""; for (int i = 0; i < linesData.size(); i++){ finalSubmit += linesData.get(i) + "\n"; } saveData(finalSubmit); Intent i = new Intent(EditActivity.this, PersonActivity.class); i.putExtra("person", personNameTV.getText().toString()); startActivity(i); } private String getData() { try { String toReturn; FileInputStream fis = openFileInput("info"); InputStreamReader inputStreamReader = new InputStreamReader(fis); BufferedReader br = new BufferedReader(inputStreamReader); StringBuffer sb = new StringBuffer(); while ((toReturn=br.readLine()) != null){ sb.append(toReturn + "\n"); } fis.close(); return sb.toString(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return " "; } private void saveData(String s){ try { FileOutputStream fos = openFileOutput("info", MODE_PRIVATE); fos.write(s.getBytes()); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } super方法登录用户,该方法传递凭据(URL,用户名/密码等),然后将用户注销。但是,当我运行它时,它运行TALogin.test()部分,然后关闭并再次运行它,但执行注销部分。

所以,我得到以下内容:

TALogin

我只想运行一次;登录然后注销。

这是我的代码:

Ran 2 tests in 65.990s

OK

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您没有告诉nose您只想在TALogout_Test中运行测试。它正在运行TALogin.testTALogout_Test.test

指定要加载测试的类的一种方法是使用nose.run()的{​​{1}}参数和suite的{​​{3}}方法:

unittest.TestLoader