Closed fscassimiro closed 7 years ago
Commita este código para eu também poder testar por aqui, por favor.
On Mon, Dec 12, 2016 at 2:36 AM, Felipe Sobreira notifications@github.com wrote:
Obs.: Esse erro não acontece nos testes create e delete, para a classe UserDatabaseDAO
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/TPII20162/BankSys/issues/149#issuecomment-266347210, or mute the thread https://github.com/notifications/unsubscribe-auth/AHAhzt8XW34uT7t0Vs0udWf1RYeHRTOsks5rHN10gaJpZM4LKMrJ .
-- Técnico em Informática - IFCE Computação - UFC e-Dea Jr. - Empresa Júnior da Computacão - UFC Skype: rodrigues.moises
@rodriguesmoises commitei, da uma olhada na classe OperatorDatabaseDAOTest, o teste para create() e delete(), estão comentados. Aqui, executando eles individualmente funcionam, mas os dois juntos da esse erro ai.
commitei os testes comentados por que o Travis está dando falha, outro erro que não sei o por que
Esse problema foi resolvido? Tava aqui mexendo vendo se algo dava certo
Eu tinha identificado esse erro quando começamos a fazer os testes para as classes do banco. O erro não acontece mais dado as condições que eu tinha citado ai em cima, acho que o @rodriguesmoises resolveu. @MarianaFL
Ué... aqui ainda está acontecendo. Eu rodo o teste OperatorDatabaseDAOtest com o delete e o create descomentados e o create passa mas dá um erro no delete:
"java.lang.AssertionError: [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database) at org.junit.Assert.fail(Assert.java:88) at banksys.persistence.operator.OperatorDatabaseDAOTest.testDelete(OperatorDatabaseDAOTest.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)"
@MarianaFL Ah! eu pensava que os testes ja tinham sido implementados pra essa classe. então realmente ainda existe esse erro. Eu não sei exatamente o que é, talvez seja algo nas definições da tabela? @rodriguesmoises
Tá acontecendo aqui também. Não é da estrutura da tabela não, eu acho, me parece mais ser sobre o acesso à base de dados, ao arquivo .sqlite. Como se o arquivo estivesse sem a permissao de leitura. Vou ver como resolve isso.
On Mon, Dec 19, 2016 at 9:16 PM, Felipe Sobreira notifications@github.com wrote:
Reopened #149 https://github.com/TPII20162/BankSys/issues/149.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/TPII20162/BankSys/issues/149#event-899433005, or mute the thread https://github.com/notifications/unsubscribe-auth/AHAhzoy-JPwz1JC_GBhLbg_37bAKF8Xsks5rJx5xgaJpZM4LKMrJ .
-- Técnico em Informática - IFCE Computação - UFC e-Dea Jr. - Empresa Júnior da Computacão - UFC Skype: rodrigues.moises
pois é, tava tentando encontrar algo sobre esse problema mas não encontrei muita coisa
Tentei fechar a conexão com o banco no final do metodo create em OperatorDatabaseDAO. Aqui deu certo, aparentemente. Rodem aí também, plz.
On Mon, Dec 19, 2016 at 9:27 PM, Mariana F. Lopes notifications@github.com wrote:
pois é, tava tentando encontrar algo sobre esse problema mas não encontrei muita coisa
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/TPII20162/BankSys/issues/149#issuecomment-268118568, or mute the thread https://github.com/notifications/unsubscribe-auth/AHAhzrF1TDx56Q43TC1C3799pv6MyzcHks5rJyDggaJpZM4LKMrJ .
-- Técnico em Informática - IFCE Computação - UFC e-Dea Jr. - Empresa Júnior da Computacão - UFC Skype: rodrigues.moises
@rodriguesmoises aqui deu certo também. haha passou despercebido esse erro
Hum, funcionou @rodriguesmoises então em todos esses testes devemos abrir e fechar uma conexão?
Sim sim, eu entendi agora o que houve:
Por isso dá problema nos testes unitários e não dava nos testes que eu fazia na classe Main pq eu não resetava a base, eu salvava, depois eu lia o objeto salvo, depois eu atualizava, depois apagava aquela linha da tabela. Mas tudo com o mesmo arquivo de banco. Então fechar a conexão o final de cada teste vai servir:
Connector.close(); Ou fechar direto no final do metodo no DAO:
connection.close();
On Mon, Dec 19, 2016 at 10:49 PM, Mariana F. Lopes <notifications@github.com
wrote:
Hum, funcionou @rodriguesmoises https://github.com/rodriguesmoises então em todos esses testes devemos abrir e fechar uma conexão?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/TPII20162/BankSys/issues/149#issuecomment-268131652, or mute the thread https://github.com/notifications/unsubscribe-auth/AHAhznaVkOykuhNNoYx4WRdQvPOsF34Tks5rJzQ6gaJpZM4LKMrJ .
-- Técnico em Informática - IFCE Computação - UFC e-Dea Jr. - Empresa Júnior da Computacão - UFC Skype: rodrigues.moises
Nos testes da classe OperatorDatabaseDAO, ao executar pela primeira vez os testes dão certo (create e delete). Mas após executar de novo, somente o create passa. Notei que tinha que resetar o banco no setUP, mas após isso, o teste da o seguinte erro ao tentar executar
java.lang.AssertionError: [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database).....
o teste create continua passando, mas o delete da esse erro. se eu comentar o teste create, então o delete da certo. Como orrigir esse erro? @rodriguesmoises