Foros del Web » Programación para mayores de 30 ;) » .NET »

Error ejecutando test unitario Clase conexion

Estas en el tema de Error ejecutando test unitario Clase conexion en el foro de .NET en Foros del Web. Buen dia tengo una clase conexion @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ASP: Ver original using System ; using System. Collections . Generic ; using System. Linq ; ...
  #1 (permalink)  
Antiguo 05/01/2017, 17:57
 
Fecha de Ingreso: marzo-2011
Ubicación: San Salvador
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Error ejecutando test unitario Clase conexion

Buen dia tengo una clase conexion

Código ASP:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using IBM.Data.Informix;
  6. using System.Configuration;
  7.  
  8. namespace ClienteConexxion.Models
  9. {
  10.     public class Conexion
  11.     {
  12.         public IfxConnection AbreConexion()
  13.         {
  14.             IfxConnection conexion = new IfxConnection();
  15.  
  16.             //Cadena de conexion puede recibir la agencia a donde se conectara
  17.             var cadenaConexion = ConfigurationManager.ConnectionStrings["001"].ToString();
  18.  
  19.             if (!string.IsNullOrWhiteSpace(cadenaConexion))
  20.             {
  21.                 try
  22.                 {
  23.                     conexion = new IfxConnection(cadenaConexion);
  24.                     conexion.Open();
  25.                 }
  26.                 catch (Exception)
  27.                 {
  28.                     conexion.Close();
  29.                 }
  30.             }
  31.             return conexion;
  32.         }
  33.     }
  34. }

Y mi clase test
Código ASP:
Ver original
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using ClienteConexxion.Models;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using IBM.Data.Informix;
  9.  
  10. namespace ClienteConexxion.Models.Tests
  11. {
  12.     [TestClass()]
  13.     public class ConexionTests
  14.     {
  15.         [TestMethod()]
  16.         public void AbreConexionTest()
  17.         {
  18.             var accion = new Conexion();
  19.  
  20.             var conexion = accion.AbreConexion();
  21.             var estado = conexion.State.ToString();
  22.             conexion.Close();
  23.  
  24.             Assert.AreEqual("Open", estado);
  25.             //Assert.Fail();
  26.         }
  27.     }
  28. }

Ejecuto el test unitario y muestra este error

Result StackTrace: en Clientes.Models.Tests.ConexionTests.AbreConexionTe st()
Result Message:
Test method Clientes.Models.Tests.ConexionTests.AbreConexionTe st threw exception:
System.BadImageFormatException: No se puede cargar el archivo o ensamblado 'IBM.Data.Informix, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7c307b91aa13d208' ni una de sus dependencias.
Se ha intentado cargar un programa con un formato incorrecto.


Donde puedo hacer la configuracion para que se ejecute correctamente, segun leo esto se debe a que son distintas arquitecturas o no se.

Gracias.
  #2 (permalink)  
Antiguo 06/01/2017, 05:33
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Error ejecutando test unitario Clase conexion

Has agregado la referencia al proyecto del test?
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 06/01/2017, 08:32
 
Fecha de Ingreso: marzo-2011
Ubicación: San Salvador
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Error ejecutando test unitario Clase conexion

Cita:
Iniciado por Malenko Ver Mensaje
Has agregado la referencia al proyecto del test?
Si todo esta agregado, es por eso que no se por donde puedo modificar.

Mi OS es de 64Bits y mi referencia es del SDK de 64Bits, pero segun el error es como que no fueran de la misma arquitectura o no entiedo.

He agregado la referencias tanto en el proyecto base como en el test.

Actulizando: Cambie los target a x64 y ahora no muestra el error de arquitectura, pero aun no se efectua el test correctamente




Actualizando: Creo a ver corregido lo de la arquitectura cambiando en el menu test ese dato Test menu -> Test Settings -> Default Processor Architecture -> x64 / x86 selecciono x64 y desaparecen los erros de arquitecura.

Nuevo error:
Result Message:
Test method ClienteConexxion.Models.Tests.ConexionTests.AbreCo nexionTest threw exception:
System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.

Última edición por jm_shinigami; 06/01/2017 a las 15:52
  #4 (permalink)  
Antiguo 09/01/2017, 14:02
 
Fecha de Ingreso: marzo-2011
Ubicación: San Salvador
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Error ejecutando test unitario Clase conexion

Despues de andar investigando llego al punto que si coloco la cadena directamente cuando creo con New la connection string funciona a la perfeccion.

Pero si coloco ConfigurationManager.ConnectionStrings["001"].ConnectionString; ya no funciona y da error. Lo anterior es como que no pudiera encontrar/leer el web.config

Alguien ya ha tenido este problema y como lo soluciono.
  #5 (permalink)  
Antiguo 09/01/2017, 15:30
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: Error ejecutando test unitario Clase conexion

Buenas compañero,

Yo tuve problemas para acceder también a ese tipo de configuraciones... Al final, tuve que añadir la cadena de conexión en la parte de Settings del proyecto que tiene la clase de conexión...
Una vez hecho esto, podrás acceder a ella con My.Settings.MiConexion


Un saludo!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #6 (permalink)  
Antiguo 09/01/2017, 15:36
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: Error ejecutando test unitario Clase conexion

Por cierto, al ejecutar código que está en un proyecto web es normal que te de ese error.
Las clases como la que estás haciendo se han de hacer en un proyecto separado, ya sea de negocio, de acceso a datos o como prefieras llamarlo... Pero sepáralo....

Saludos!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #7 (permalink)  
Antiguo 09/01/2017, 15:53
 
Fecha de Ingreso: marzo-2011
Ubicación: San Salvador
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Error ejecutando test unitario Clase conexion

Cita:
Iniciado por Drako_18 Ver Mensaje
Por cierto, al ejecutar código que está en un proyecto web es normal que te de ese error.
Las clases como la que estás haciendo se han de hacer en un proyecto separado, ya sea de negocio, de acceso a datos o como prefieras llamarlo... Pero sepáralo....

Saludos!
Hola como manejas esta parte, tienes algun ejemplo

He realizado pequeños cambios e igual el problema persiste. No se por donde tomar este problema.

  #8 (permalink)  
Antiguo 10/01/2017, 11:47
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: Error ejecutando test unitario Clase conexion

Buenas compañero,

No supe solucionarlo de la mejor forma, que es haciendo funcionar lo que intentas usar, así que usé esto otro:


Y para usarlo, sólo hay que poner: My.Settings.CadenaConexion


Un saludo y espero que te sirva de ayuda..!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)

Etiquetas: asp, c#, mvc, test
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:15.