кусок кода работает в консольном приложении, но не работает внутри nunit test

Простое консольное приложение без проблем открывает соединение:

    static void Main(string[] args)
    {
        string connectionString = String.Format(
           @"Provider=OraOLEDB.Oracle;PLSQLRSet=1;Password={0};Persist Security Info=True;User ID={1};Data Source={2};OLEDB.NET=true;FetchSize=5000",
            "pwd", "schema", "server");

        using (IDbConnection con = new OleDbConnection(connectionString))
        {
            con.Open();
            Console.WriteLine("Opened");
        }
        Console.ReadKey();
    }

но если попытаться сделать то же самое в методе тестирования nunit:

public class UnitTest1
{
    [Test]
    public void TestMethod1()
    {
        string connectionString = String.Format(
           @"Provider=OraOLEDB.Oracle;PLSQLRSet=1;Password={0};Persist Security Info=True;User ID={1};Data Source={2};OLEDB.NET=true;FetchSize=5000",
            "pwd", "schema", "server");

        using (IDbConnection con = new OleDbConnection(connectionString))
        {
            con.Open();
        }
    }
}

У меня есть исключение: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

Явно проблема в окружении.

Как «настроить» nunit для использования «тех же» настроек, что и консольное приложение

некоторые детали:

целевая платформа: 4.0 целевая платформа: x86 nunit 2.5.9 ОС: Windows 7 x64


person Michael Pakhantsov    schedule 11.05.2011    source источник
comment
У меня тоже есть эта проблема, и я не смог найти решение.   -  person Chris Missal    schedule 11.05.2011


Ответы (2)


Проблема связана со скобками в имени папки. (C:\Program Files (x86))

Если я запускаю nunit из папки c:\something(nunit)\, я получаю ту же ошибку.

Замена пути VS на короткие имена 8.3 мне не помогает. Поэтому пришлось установить Oracle Client 11, и проблема исчезла.

person Michael Pakhantsov    schedule 06.08.2012

Проверьте, помогает ли следующее: http://ora-12154.ora-code.com/

person Azodious    schedule 11.05.2011
comment
спасибо, но я знаю, что означает ORA-12154, мне нужно знать разницу в среде, в которой используется nunit, по сравнению с консольным приложением - person Michael Pakhantsov; 11.05.2011